Symfony 2中使用use_controllers: false时,Assetic路径错误

4

我在调试模式下尝试将use_controllers设置为false,因为在我的机器上,需要5到15秒的时间,然后我手动生成资产。

生成的文件很好,但当我在浏览器中打开页面时,没有css或js文件被加载。我查看了开发者工具,并发现Symfony正在尝试从“localhost/_controller/js/08f6dbe_jquery-1.7.2.min_1.js”加载文件。如果我手动删除路径中的“_controller”,它就可以正常工作,但我不知道为什么Symfony会生成错误的路径。

一些代码:

#config_dev.yml

assetic:
use_controller: false

base.html.twig

{% javascripts '../app/Resources/public/js/libs/jquery-1.7.2.min.js'
     <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %} 

我希望你能帮助我,很抱歉我的英语不太好。

下面是需要翻译的技术内容:


只是为了确认一下,你的config_dev.yml文件中use_controller行是否有两个空格的缩进,并且不是直接在assetic下面? - Luke
3个回答

12

这只是与清理开发缓存有关。当我更改配置时,我也遇到了同样的问题,但您需要手动执行app/console cache:clear命令以清除您的开发环境缓存。简单刷新页面不起作用。


5

我曾经遇到过完全相同的问题,但是清除缓存后问题解决了。

php app/console cache:clear


谢谢!我运行了 rm -rf app/cache/dev,这帮了我很多。应该接受这个答案,而不是当前的那个错误地提出了 output="js/*.js" - Entea

2
你可以在twig模板中设置output="js/*.js"。
{% javascripts 
    '../app/Resources/public/js/libs/jquery-1.7.2.min.js' output='js/*.js'
     <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %} 

这应该会产生类似这样的内容 - "//localhost/js/f31e898_jquery_.js"
你可以将 * 替换为实际名称,例如 'jquery',但为避免缓存最好使用 *。希望这可以帮助到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接