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

时间:2012-01-12 14:17:32

标签: php html css symfony fosuserbundle

我拥有位于

的css

app/Resources/FOSUserbundle/css

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

我把css放在那里的原因是我的所有重写的FOSUser模板都在该文件夹中。所以我想保留css,js图像全部在那里,如果我需要在其他网站使用我只是复制该文件夹

3 个答案:

答案 0 :(得分:6)

我不太确定如何在TWIG模板中包含它,但是......

1)我将我使用的资源放在web /目录中的几个bundle / projects中。那么你可以像这样引用:

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

2)如果你需要覆盖FOSUserbundle,你可以将资源放在继承包中,引用它们如下:

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

答案 1 :(得分:6)

你所做的一切都很好。

请执行以下操作: -

$ 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 %}

答案 2 :(得分:3)

虽然问题建议并覆盖了大小写,但它也要求css或js位于公共文件夹中,远离捆绑结构。

一个答案是使用可用的树枝变量。例如,如果我在这里有一个css文件

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

我可以使用类似的东西加载任何模板(注意示例会覆盖完整的样式表块,但不是必需的,样式表twig标记可以添加到任何块中):

{% 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文件夹。