我拥有位于
的css app/Resources/FOSUserbundle/css
如何将其包含在我的树枝模板中
我把css放在那里的原因是我的所有重写的FOSUser模板都在该文件夹中。所以我想保留css,js图像全部在那里,如果我需要在其他网站使用我只是复制该文件夹
答案 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文件夹。