我有这个结构的捆绑包:
/src/BankBundle/
...
/src/BankBundle/Resources/
...
public/
css/
foundation-datepicker.css
js/
common.js
foundation-datepicker.js
...
...
所以我想在我的模板中包含CSS和JS,我正在这样做:
{% extends "::base.html.twig" %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('/js/foundation-datepicker.js') }}" type="text/javascript"></script>
<script src="{{ asset('/js/common.js') }}" type="text/javascript"></script>
{% endblock %}
{% block stylesheets %}
{{ parent() }}
<link href="{{ asset('/css/foundation-datepicker.css') }}" rel="stylesheet" />
{% endblock %}
但它不起作用,因为Firebug控制台说 404错误:找不到所以什么是从我的包中包含资源的正确方法?我还运行任务php app/console assets:install --symlink
,因此我对这些文件进行了符号链接
答案 0 :(得分:2)
查看符号链接文件夹的外观。
它们的格式为bundles/<bundlename-without-Bundle>
...
asset()
函数生成的路径与您的web
文件夹相关。
{{ asset('bundles/bank/css/foundation-datepicker.css') }}
您也可以使用@Bundle
语法,但请注意,某些过滤器(即cssrewrite
)无法使用此语法。
{% stylesheets '@BankBundle/Resources/public/css/*' %}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}">
{% endstylesheets %}
答案 1 :(得分:2)
由于你已经设置了符号链接,你应该可以这样做:
{{ asset( 'bundles/lowercasebundlename/js/foundation-datepicker.js' ) }}
但是让Assetic转储文件可能仍然会更好:
{% javascripts '@BundleName/Resources/public/js/*' %}
<script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}
答案 2 :(得分:0)
Symfony在bundles
下的/web
目录中安装捆绑资源。我相信正确的路径是/bundles/bank/css/xxx.css:
{% block stylesheets %}
{{ parent() }}
<link href="{{ asset('bundles/bank/css/foundation-datepicker.css') }}" rel="stylesheet" />
{% endblock %}