我正在使用Assetic来包含Javascript文件,但是当在开发环境中使用时,/app_dev.php
会添加到URL的开头,因此最终的网址看起来像/app_dev.php/js/something.js
。这在尝试加载JS时产生404。当我从生产环境访问该网站时,网址不包含/app_dev.php
,一切正常。
我可以添加一个条件来检查它是否是开发环境并在URL上调用str_replace
,但如果可能的话,我想解决这个问题的根源。
修改
@gilden,我会理解,在dev中,每次都会处理它们,但这些URL只会导致404.
这是我的资产配置:
assetic:
debug: %kernel.debug%
use_controller: false
filters:
cssrewrite: ~
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
# yui_css:
# jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
以下是我在模板中使用它的方法(app / Resources / views / base.html.php)
foreach ($view['assetic']->javascripts(
array('@AssetsBundle/Resources/public/js/*'), array(), array('output' => 'js/combined.js')) as $url) {
echo 'url: ' . $url . '<br />';
}
然后我使用我编写的自定义助手包含$ url,但此时它已包含app_dev.php。
答案 0 :(得分:2)
我没有在Symfony中使用php模板,所以我担心我没有最好的答案。通过使用一些自定义代码,您可能会绕过一些内部逻辑,它处理对控制器的请求。
作为解决方法,您可以尝试从assetic: use_controller: true
删除/app/config_dev.yml
。