ruby-on-rails-4 – Rails:使用Sass的@import而不是* = require
我决定使用Sass的@import而不是Sprocket的* = require.
我在application.scss中有这个: @import 'normalize'; @import 'font-awesome'; @import 'variables'; 这在blog.scss中: @import 'application'; 这样我就可以为不同的控制器设置单独的样式表(使我的代码更有条理). 为了使这个工作,我还将stylesheet_link_tag params [:controller]添加到我的布局,然后将Rails.application.config.assets.precompile =%w(blog.css)行添加到我的/config/initializers/assets.rb文件中重启服务器. 这种方法有什么缺点吗? turbolinks会变慢吗? 解决方法
如果你有多个Sass文件,Rails Asset Pipeline指南实际上建议使用Sass的@import而不是Sprockets * = require.
以下是Rails Asset Pipeline指南的引用: “如果你想使用多个Sass文件,你通常应该使用Sass @import规则而不是这些Sprockets指令.当使用Sprockets指令时,Sass文件存在于它们自己的范围内,使变量或mixin仅在它们被定义的文档中可用in.(http://guides.rubyonrails.org/asset_pipeline.html)“ 这也推荐在sass-rails gem Github页面(https://github.com/rails/sass-rails)上.这是该页面的引用: “Sprockets提供了一些放在注释中的指令,名为require,require_tree和require_self.不要在你的SASS / SCSS文件中使用它们.它们非常原始,不适用于Sass文件.而是使用Sass的原生@import sass-rails已经定制的指令,可以与Rails项目的约定集成.“ 这种方法没有任何明显的缺点,实际上有很多好处(包括但不一定限于): >主要优点来自SASS @import创建全局命名空间,而Sprockets指令不创建. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |