Rails 3.1:从Lib导入Sass

And*_*rew 6 ruby-on-rails sass ruby-on-rails-3.1 asset-pipeline

我有一堆'bootstrap'sass文件,我想/lib按照资产管道的新约定粘在我的应用程序目录中.

但是,我需要将这些导入到我application.css.scss而不是要求它们,因为我想在整个应用程序中共享一些颜色变量等.我无法找到@import从中获取.scss文件的方法/lib/assets/stylesheets.

有什么建议?

nob*_*ody 10

@import 应该寻找任何.css.scss位于您的资产负载路径的文件,无论是在app/assets/stylesheets,lib/assets/stylesheets,vendor/assets/stylesheets,或宝石添加任何额外的路径,所以它的奇怪的是,你得到一个错误.

请注意,@import除非文件位于子目录中,否则在使用时不需要传递文件夹名称assets/stylesheets- sass-rails将查看加载路径上的每个文件夹,并查看相对于这些文件夹的资源是否存在.

要确保它lib/assets/stylesheets在您的资产加载路径中(它应该是,因为它是默认选项),请打开Rails提示并键入Rails.application.config.assets.paths.举个例子,这是我的一个应用程序的结果:

ruby-1.9.3-p0 :012 > Rails.application.config.assets.paths
 => ["/Users/tom/ruby/qa/app/assets/images",
 "/Users/tom/ruby/qa/app/assets/javascripts",
 "/Users/tom/ruby/qa/app/assets/stylesheets", 
 "/Users/tom/ruby/qa/lib/assets/stylesheets",
 "/Users/tom/ruby/qa/vendor/assets/javascripts",
 "/Users/tom/ruby/qa/vendor/assets/stylesheets",
 "/Users/tom/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.14/vendor/assets/javascripts",
 "/Users/tom/.rvm/gems/ruby-1.9.3-p0/gems/bootstrap-sass-1.4.0/vendor/assets/javascripts", 
 "/Users/tom/.rvm/gems/ruby-1.9.3-p0/gems/bootstrap-sass-1.4.0/vendor/assets/stylesheets"] 
Run Code Online (Sandbox Code Playgroud)

同样值得确保它sass-rails是最新的并运行最新版本,因为我认为早期版本在跨文件夹方面有限制支持@import.

注意:我也相信惯例建议像Bootstrap或jQuery这样的文件应该放在你的vendor/assets文件夹而不是lib/assets


tim*_*sly 8

我遇到了同样的问题,这是因为我在将文件添加到lib目录后忘记了重启服务器.