0

我正在使用 Assetic 来包含 Javascript 文件,但是在开发环境中使用时,/app_dev.php会添加到 URL 的开头,因此最终的 url 看起来像/app_dev.php/js/something.js. 这会在尝试加载 JS 时导致 404。当我从生产环境访问该站点时,URL包括在内/app_dev.php,并且一切正常。

我可以添加一个条件来检查它是否是开发环境并调用str_replaceURL,但如果可能的话,我想解决这个问题的根源。

编辑

@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。

4

1 回答 1

2

我没有在 Symfony 中使用过 php 模板,所以恐怕我没有最好的答案。通过使用一些自定义代码,您可能会绕过一些处理对控制器的请求的内部逻辑。

作为一种解决方法,您可以尝试assetic: use_controller: true/app/config_dev.yml.

于 2011-09-08T18:23:58.243 回答