这可以使用带有继承的资产吗?使用下面的代码我得到这个错误:
在呈现模板期间抛出异常(“无法生成指定路由的URL”_assetic_41351d9“,因为此类路由不存在。
我的应用布局:
{# app/Resources/views/layout.html.twig
{% block javascripts %}
{% javascripts
'assets/js/jquery-2.2.0.min.js'
'assets/js/main.js'
output='assets/compiled/app.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
我的孩子布局:
{% extends "::layout.html.twig" %}
...
{% block javascripts %}
{{ parent() }}
{% javascripts
'assets/js/jquery.owl.min.js'
output='assets/compiled/page.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
答案 0 :(得分:2)
是的,您可以在Twig中使用继承,并且在您的代码中尝试执行的操作没有任何内在错误。我会尝试完全清除缓存并再次加载页面,并确保您尝试正确加载的所有资产都存在。
答案 1 :(得分:1)
我认为它不按我们想要的方式工作,但我发现了named assets
您在配置文件中命名所有父模板资产
pom.xml
然后在所有孩子中加上pom.xml
名称以及任何其他资产:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>X.X.X.X</version>
</dependency>
这显然很麻烦,但我找不到这样做的简单方法,也不明白为什么它不会生成父模板资产。
修改强>
你是否有机会使用LiipThemeBundle? This可以解决问题:
assetic:
assets:
jquery_and_ui:
inputs:
- '@AppBundle/Resources/public/js/thirdparty/jquery.js'
- '@AppBundle/Resources/public/js/thirdparty/jquery.ui.js'
答案 2 :(得分:0)
这应该可以正常工作。扩展块javascripts也适用于资产。
其实这样的消息
无法为指定路由“_assetic_41351d9”生成URL 这种路线不存在
说过时缓存。你清楚了吗?这对我有所帮助。
php app/console cache:clear --env=dev
希望它有意义。
答案 3 :(得分:0)
在我的情况下,错误似乎是由于基本文件扩展名是.html.twig而导致的,而子文件只有.twig-将两个文件的扩展名更改为.html.twig解决了问题... / p>