我应该使用@import还是清单文件?

Rails 3.1引入了一个新的方式来组织JS和CSS和清单文件的引入。 例如, application.js可能如下所示:

 //= require jquery //= require jquery-ui //= require jquery_ujs //= require_tree . 

这将抓住JQuery的各个部分,所有你自己的JS,连接在一起,并作为一个单一的文件提供给客户端。 很简单。

不幸的是,SASS对我来说不太清楚。 SASS已经使用@importbuild立了连接。

我是否应该将所有部分更改为完整的SASS文件,然后使用清单文件连接它们或继续使用@import? 为什么?

链接在链接之前将所有导入转换为CSS,因此不能用于跨文件共享混合和variables。 我猜这只是因为你可以通过该方法导入SASS,LESS和CSS文件。

所以这就是我如何做到这一点:

  • 如果我有ERB包含(主要用于asset_path()调用),我把它们放在我的主文件application.css.scss.erb
  • 如果我有销售的CSS,我想包括,我需要通过链轮,例如/ / //=require jquerymobile
  • 在同一个文件中,我使用SASS @import命令显式加载所有文件。 尽pipe@ import'ed文件可能不是.erb。
    1. 加载基本的东西(例如重置)和导入混合
    2. 声明variables
    3. 导入特定的样式

这是我的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语句。