Symfony Assetic,Lesscss和cssrewrite

时间:2015-06-12 09:58:49

标签: php symfony less assetic

我使用Symfony 2.7,Assetic和LessCss。 在开发环境中,我的配置运行良好。生成所有css并将图像嵌入base64中。但是当我尝试使用php app/console assetic:dump --env=prod为prod环境编译LessCss时,cssembed崩溃,因为他没有找到图像。

这是我的文件夹结构:

app
├── config
├── Resources
│   ├── less
│   │   ├── base.less
src
web
├── bundles
├── ui
│   ├── some-images.png

我的config.yml

# Assetic Configuration
assetic:
    debug: "%kernel.debug%"
    use_controller: false
    bundles:
        - CnertaTutoPrestoBundle
    #java: /usr/bin/java
    filters:
        less:
            node: /usr/bin/node
            node_paths: [/usr/lib/node_modules]
            apply_to: "\.less$"
        cssembed:
            jar: %kernel.root_dir%/../vendor/scribe/cssembed-library/dist/cssembed.jar
        cssrewrite: ~
    assets:
        base_style:
            inputs:
                - %kernel.root_dir%/Resources/less/base.less
            filters:
                - less
                - cssrewrite
                - cssembed

我的base.less

@pathWeb:           "/../../../../web/ui/";
.user{
    background-image: url("@{pathWeb}image.png");
}

奇怪的是,如果我为"/../../../../web/ui/"更改"/../../../web/ui/"(我刚删除了“../”),我可以为prod环境编译Css。但是LessCss不再适用于开发环境。

我真的不知道我的问题出在哪里。

2 个答案:

答案 0 :(得分:0)

您检查过config_dev.yml文件了吗?可能存在与config.yml冲突的配置。

我之前遇到过一些资产问题,对你的问题很熟悉。检查

资产配置

assetic:      use_controller:true或false

http://symfony.com/doc/current/cookbook/assetic/asset_management.html#dumping-asset-files-in-the-dev-environment

在我的应用程序中,一切都很顺利。在config.yml中,use_controller:false 在config_dev.yml中,use_controller为true。

答案 1 :(得分:0)

嗯,好吧,

问题来自cssrewrite。 如果我不使用它并且使用"../../../web/ui/"更改我的图像路径,则一切正常。在开发和生产环境中。