这有点令人沮丧。根据 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 %}
但得到以下异常:
在 "/home/凯文/www/src/mybundle/Resources/views/Home/index.html.twig
Symfony 官方文档表明它应该可以开箱即用,无需任何配置。
所以,TLDR:
- 我不明白应该如何加载资产吗?
- 如何解决资产异常?