我正在使用 SASS 在 Rails 3.1(sass-rails 3.1) 应用程序中加载样式表。例如,app/assets/stylesheets
中的 sass 部分使用 @import
加载在 application.sass
-
@import "pages/common"
@import "pages/**/*"
@import "jquery-ui.css"
现在,我也想加载
vendor/assets/stylesheets
.请注意,我没有使用 require vendor
,如 @import pages/*
似乎是 sass 推荐的做法。这里的文件将是 css
, 而不是 sass
或 scss
.我不能使用 @import ../../../vendor/assets/stylesheets/*
因为它仅适用于 sass
和 scss
文件。有什么办法吗?
更新
我现在拥有的是这个。
application.css.scss
//= require_tree .
//= require vendor
//= require_self
这包括上面提到的所有 sass 部分。
require vendor
在vendor/assets/stylesheets/vendor.css
好像//= require_tree .
这种方法的一个警告是 sass mixins(用户定义和插件)和公共(public)变量并非在所有部分中都可用。我现在拥有的是
_common_imports.sass
我@import
所有部分的第一件事。common_imports.sass
@import "colors"
@import "compass/css3/gradient"
@import "compass/css3/border-radius"
@import "compass/css3/box-shadow"
进口
common_imports
在所有部分都感觉非常重复。
最佳答案
如果我理解正确,我认为这可能会有所帮助。
将以下内容添加到 config/application.rb
,在 class Application < Rails::Application
内堵塞:
config.sass.load_paths << File.expand_path('../../lib/assets/stylesheets/')
config.sass.load_paths << File.expand_path('../../vendor/assets/stylesheets/')
我刚刚将上述内容添加到应用程序中,以下指令现在都可以正常工作:
@import 'grid'
在 app/assets/stylesheets/application.css.scss
找到文件 vendor/assets/stylesheets/_grid.scss
; @import 'background'
, 再次在 application.css.scss
, 找到 vendor/assets/stylesheets/background.css
. 这有帮助吗?对不起,如果我误解了这个问题!
关于ruby-on-rails-3.1 - SASS,导轨 3.1 : Loading stylesheets in vendor/assets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7373751/