【发布时间】:2012-01-12 14:17:31
【问题描述】:
我的 css 位于
app/Resources/FOSUserbundle/css
如何在我的树枝模板中包含它
我将 css 放在那里的原因是我所有覆盖的 FOSUser 模板都在该文件夹中。所以我想把css、js图像都保存在那里,这样如果我需要在其他网站上使用,我只需复制那个文件夹
【问题讨论】:
标签: php html css symfony fosuserbundle
我的 css 位于
app/Resources/FOSUserbundle/css
如何在我的树枝模板中包含它
我将 css 放在那里的原因是我所有覆盖的 FOSUser 模板都在该文件夹中。所以我想把css、js图像都保存在那里,这样如果我需要在其他网站上使用,我只需复制那个文件夹
【问题讨论】:
标签: php html css symfony fosuserbundle
我不太确定如何将其包含在 TWIG 模板中,但是...
1) 我把我使用的资源放在 web/ 目录下的几个 bundles/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 %}
【讨论】:
你所做的一切都很好。
只需执行以下操作:-
$ 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 %}
【讨论】:
app/resources/....
尽管问题建议并覆盖大小写,但它也要求 css 或 js 位于公共文件夹中,远离包结构。
一个答案是使用可用的树枝变量。例如,如果我有一个 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 文件夹。
【讨论】: