为什么我的dev前端控制器包含在Assetic URL中?

时间:2011-09-08 16:56:38

标签: php symfony assetic

我正在使用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。

1 个答案:

答案 0 :(得分:2)

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

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