我应该使用@import还是清单文件?
Rails 3.1引入了一个新的方式来组织JS和CSS和清单文件的引入。 例如, application.js
可能如下所示:
//= require jquery //= require jquery-ui //= require jquery_ujs //= require_tree .
这将抓住JQuery的各个部分,所有你自己的JS,连接在一起,并作为一个单一的文件提供给客户端。 很简单。
不幸的是,SASS对我来说不太清楚。 SASS已经使用@import
build立了连接。
我是否应该将所有部分更改为完整的SASS文件,然后使用清单文件连接它们或继续使用@import? 为什么?
链接在链接之前将所有导入转换为CSS,因此不能用于跨文件共享混合和variables。 我猜这只是因为你可以通过该方法导入SASS,LESS和CSS文件。
所以这就是我如何做到这一点:
- 如果我有ERB包含(主要用于
asset_path()
调用),我把它们放在我的主文件application.css.scss.erb - 如果我有销售的CSS,我想包括,我需要通过链轮,例如/ /
//=require jquerymobile
- 在同一个文件中,我使用SASS @import命令显式加载所有文件。 尽pipe@ import'ed文件可能不是.erb。
- 加载基本的东西(例如重置)和导入混合
- 声明variables
- 导入特定的样式
这是我的app.css目前的样子。 不要忘记“;” 和引号:
// Using SASS import is required for variables and mixins to carry over between files. @import "reset.css.scss"; @import "mixins.css.scss"; $color_base: #9b2d31; $color_background: #c64e21; // Using asset_path is important for browsers to use versioned url for the asset. // This lets us do aggressive caching. $logo-url: url(<%= asset_path("logo.png") %>); @import "application/layout.css.scss"; @import "application/sidebar.css.scss"; @import "application/videos.css.scss"; @import "application/pages.css.scss"; ...
请注意,我仍在探索Rails 3.1资产pipe道,因此您的里程可能会有所不同。 如果我发现其他有趣的事情,我会试着回来更新。
解决这个问题的最好方法是使用原生的@import
指令,如下所述: https : //github.com/rails/sass-rails#important-note
这个问题已经在这里得到解答: 如何使用sprss导入sass
希望这可以帮助! 🙂
sass-rails gem 明确声明不在SASS文件中使用require
语法 – 而是使用SASS的@import
语句。