これは少しイライラします。Symfony のベスト プラクティスによると、バンドルの 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
. これは予想される動作ですか?公式ドキュメントはこれについて明確ではありません。
この問題に対処するために、資産を動的に提供する assetic の機能を取り入れてみました。私は試した:
{% 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:
- アセットをロードする方法を理解していませんか?
- 資産の例外に対処するにはどうすればよいですか?