如何在symfony 2中包含resources文件夹中的css



我看到了位于中的css

app/Resources/FOSUserbundle/css

我如何将其包含在我的树枝模板中

我之所以把css放在那里,是因为我所有覆盖的FOSUser模板都在那个文件夹中。所以我想把css,js图片都放在那里,这样如果我需要在其他网站上使用,我只需复制文件夹

我不太确定如何将其包含在TWIG模板中,但是。。。

1) 我把我在几个捆绑包/项目中使用的资源放在了web/目录中。然后你可以这样参考:

{% stylesheets 'css/styles.css' %}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}

2) 如果您无论如何都需要覆盖FOSUserbundle,您可以将资源放在继承bundle中,这样引用它们:

{% javascripts '@YourBundle/Resources/public/js/scripts.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

您所做的一切都很好。

只需执行以下操作:-

$ app/console assets:install web

它将把资产安装在公共的"web"目录中,从技术上讲,资产应该在那里,以便与您的Twig模板一起使用。

然后可以在Twig模板中使用资产,如下所示:-

    {% block stylesheets %}
        <link href="{{ asset('/css/main.css') }}" type="text/css" rel="stylesheet" />
    {% endblock %}

    {% block javascripts %}
        <script src="{{ asset('/js/main.js') }}" type="text/javascript"></script>
    {% endblock %}

尽管这个问题建议并覆盖case,但它也适用于css或js位于公共文件夹中、远离bundle结构的情况。

一个答案是使用可用的分支变量。例如,如果我有一个css文件位于这里

app/Resources/views/clientSite/customFolder/css/mycss.css

我可以使用这样的东西加载到任何模板中(注意,这个例子覆盖了完整的样式表块,但不是必需的,样式表分支标记可以添加到任何块中):

{% block stylesheets %}
    {{ parent() }}
    {% stylesheets '%kernel.root_dir%/Resources/views/clientSite/customFolder/css/mycss.css'
    %}
    <link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
    {% endstylesheets %} 
{% endblock %}

还要记住执行assetic:dump命令,这样symfony就知道它必须将css与所有其他文件一起发布到web/css文件夹中。

最新更新