【发布时间】:2012-11-12 15:50:57
【问题描述】:
这有点令人沮丧。根据 Symfony 最佳实践,bundle 的 web 资产(图像、css、js)应该放在src/vendor/path/to/bundle/Resources/public。运行app/console assets:install 将该公用文件夹的内容复制到web/bundles/bundlename。在官方文档中,Twig 模板显示为使用如下代码获取这些资产:
{% block stylesheets %}
<link rel="stylesheet" type="text/css" href="{{ asset('/css/styles.css') }}
{% endblock %}
当我尝试它时,它并没有神奇地从web/bundles/bundlename/css/styles.css 获取我的资产,而是直接用于web/css/styles.css。这是预期的行为吗?官方文档对此不太清楚。
为了尝试解决这个问题,我尝试采用资产动态服务资产的能力。我试过了:
{% stylesheets '@mybundle/Resources/public/css/*' %}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
但出现以下异常:
在编译模板期间引发了异常(“您必须将 mybundle 添加到 assetsic.bundle 配置中才能使用 mybundle:Home:index.html.twig 中的 {% stylesheets %} 标签。”)在“ /home/kevin/www/src/mybundle/Resources/views/Home/index.html.twig
official Symfony documentation 使它看起来可以开箱即用,无需任何配置。
所以,TLDR:
- 我不明白应该如何加载资产吗?
- 如何解决资产异常?
【问题讨论】:
标签: php exception twig symfony-2.1 assetic