在 Symfony2 中,变量在带有 assetic 的部分内部不起作用
Variables don't work inside partials with assetic in Symfony2
我有一个使用 compass 和 assetic(或者至少也在尝试)的 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
除罗盘混合外,部分 css 的其余部分工作正常,如果我尝试在其中一个部分中调用混合,我会收到类似的 "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 %}
assetic好像是为每个partial创建了不同的文件,我不知道这是否是正常做法,我习惯用compass编译,它只生成一个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)
好吧,就在我开始赏金时,我找到了一个解决方案:
{% stylesheets 'scss/app.scss' filter='compass' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
因为我只有一个 scss 要编译(其余都是部分的)我需要指定它,这样它只编译那个文件并且导入开始正常工作并且变量可以用于所有它们(当然,如果它们之前已经声明过的话)。
我有一个使用 compass 和 assetic(或者至少也在尝试)的 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
除罗盘混合外,部分 css 的其余部分工作正常,如果我尝试在其中一个部分中调用混合,我会收到类似的 "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 %}
assetic好像是为每个partial创建了不同的文件,我不知道这是否是正常做法,我习惯用compass编译,它只生成一个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)
好吧,就在我开始赏金时,我找到了一个解决方案:
{% stylesheets 'scss/app.scss' filter='compass' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
因为我只有一个 scss 要编译(其余都是部分的)我需要指定它,这样它只编译那个文件并且导入开始正常工作并且变量可以用于所有它们(当然,如果它们之前已经声明过的话)。