我正在使用 Assetic 来包含 Javascript 文件,但是在开发环境中使用时,/app_dev.php
会添加到 URL 的开头,因此最终的 url 看起来像/app_dev.php/js/something.js
. 这会在尝试加载 JS 时导致 404。当我从生产环境访问该站点时,URL不包括在内/app_dev.php
,并且一切正常。
我可以添加一个条件来检查它是否是开发环境并调用str_replace
URL,但如果可能的话,我想解决这个问题的根源。
编辑
@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。