Symfony2资产指南针在产品和开发环境中不同的资产url路径



我试着在Ubuntu 12.04上用compass和Assetic配置我的Symfony2项目(放弃在Windows XP上用compass-and-Assetic运行这个项目)。

我配置了compass,当我在开发环境中启动项目时,它运行良好,尽管在prod中,我从compass过滤器到css输出文件的asset_url路径错误。

这是我的config.yml资产部分:

# Assetic Configuration
assetic:
debug:          %kernel.debug%
use_controller: false
#bundles:        [ ]
#java: /usr/bin/java
filters:
    cssrewrite: ~
    sass: 
      bin: /usr/local/bin/sass
      apply_to: ".scss$"
      #bin: C:/Ruby200/bin/sass this is for Windows not working though
    compass: 
        images_dir: %kernel.root_dir%/../web/images
        http_path:  /images
        #bin: C:/Ruby200/bin/compass.bat this is for Windows not working though
        bin: /usr/local/bin/compass
    closure:
        jar: %kernel.root_dir%/Resources/java/compiler.jar
    yui_css:
        jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar

我在app/Resources/views/base.html.trick中包含资产过滤器

 {% stylesheets filter="compass" "@PortalSlubnyMainBundle/Resources/public/css/settings.scss"%}
 <link rel="stylesheet" href="{{ asset_url }}" />
 {% endstylesheets %}
 <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />

当我通过app_dev.php运行我的项目时,我得到了格式正确的asset_url

如下所示:/app_dev.php/css/66262784_settings_1.css

在产品环境中,我得到了错误的URL,比如:/css/6627784.css(404未找到错误)

我清除了prod和dev的缓存,但没有任何变化。

在开发环境中,assetic默认使用控制器。所以你的url用于prod和dev环境是很好的。

要生成资产文件,您需要运行app/console assetic:dump,这些文件将在产品环境中使用。

最新更新