变量在Symfony2中具有资产的部分内部不起作用

时间:2015-01-28 16:22:52

标签: symfony assetic compass

我有一个使用指南针和资产的Symfony2项目(或至少也尝试过)。

我有一个名为app.scss的主文件,其中包含部分和指南针的所有导入,并且它正确编译,但是当我在一个部分中创建变量并尝试在另一个部分中访问它时,我得到一个错误,比如这样:

 Line 63: Undefined variable: "$row-width".

app.scss看起来像这样:

@import "compass";
@import "settings"; //here I have my variable
@import "foundation/bower_components/foundation/scss/normalize";
@import "foundation/bower_components/foundation/scss/foundation";

@import "fonts";

@import "home"; //here I try to call the same variable that gives the error

部分工作中的其余部分工作正常,除了指南针混合,如果我试图在其中一个部分中调用mixin,我得到一个类似的" undefined"错误。

我的config.yml是这样的:

# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ ]
    filters:
        cssrewrite: ~
        compass: 
            load_paths:
                 - '%kernel.root_dir%/../web/foundation/bower_components/foundation/scss'
            apply_to: ".(scss|sass)$"

最后,在我脑海里:

{% stylesheets 'scss/*' filter='compass' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

似乎有资格为每个部分创建不同的文件,我不知道这是否是正常的做法,我以前习惯使用罗盘进行编译,它只生成一个css文件。

18:26:36 [file+] /Users/Maggie/Sites/app/../web/css/1a73e0a.css
18:26:41 [file+] /Users/Maggie/Sites/app/../web/css/1a73e0a_part_1__fonts_1.css
18:26:41 [file+] /Users/Maggie/Sites/app/../web/css/1a73e0a_part_1__home_2.css
18:26:41 [file+] /Users/Maggie/Sites/app/../web/css/1a73e0a_part_1__settings_3.css
18:26:42 [file+] /Users/Maggie/Sites/app/../web/css/1a73e0a_part_1_app_4.css

无论如何,当我在浏览器上看到代码时,只有主css的调用:

 <link rel="stylesheet" href="/css/1a73e0a.css" />

这个问题看起来与我的相似,但也没有回答:Basset/Assetic + SASS wont compile imports (osx)

1 个答案:

答案 0 :(得分:1)

好吧,当我开始赏金时,我找到了一个解决方案:

{% stylesheets 'scss/app.scss' filter='compass' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

由于我只有一个scss要编译(其余都是部分)我需要指定它,这样它只编译该文件并且导入开始正常工作并且变量可以在所有这些上使用(如果它们之前已经宣布过。)