Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
630 views
in Technique[技术] by (71.8m points)

ruby on rails 3 - SASS global variables not being passed to partials

Basically I have a structure that used to work perfectly in 3.0.x and now it breaks with undefined variable errors.

  • partials
    • _base.css.sass
    • _header.css.sass
  • main.css.sass
  • application.css.sass

the application.css.sass:

//=require 'main'

the main.css.sass:

@import 'partials/base'
@import 'partials/header'

Pretty simple stuff.

I get an error on _header.css.sass because it uses a variable defined on _base.css.sass

I didn't have this error before, and it makes no sense to me, since we're importing those variables on the _base.css.sass in the same context we are importing the _header.css.sass.

Am I going to have to import the _base.css.sass on every partial too? What is the point of the main.css.sass requiring global variables if they cannot be used in the own partials you are requiring?

If my structure is completely wrong, please give me an alternative, I'd love suggestions.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can't use //=require to include "dynamic" SASS stuff like mixins and variables, because that's used just for including the most "static" stuff (like pure CSS). You have to @import all your files in application.css.sass. Railscasts provides good explanation of this in episode #268.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...