@ import-ed .scss文件和Sprockets 4

时间:2015-11-18 18:34:52

标签: ruby-on-rails sass sprockets

这可能为时尚早,无法获得好的答案,但是我们走了:我有一个测试Rails项目,assets/目录看起来像这样:

config/
  manifest.js
images/
javascripts/
  application.js
stylesheets/
  _base.scss
  _reset.scss
  _theme.scss
  _variables.scss
  application.scss

清单文件如下所示:

// JS and CSS bundles
//= link_tree ../javascripts .js
//= link_tree ../stylesheets .css

// Images so that views can link to them
//= link_tree ../images

application.scss就像这样:

@import "reset";
@import "variables";
@import "base";
@import "theme";

_base.scss_theme.scss都使用_variables.scss文件中定义的变量。

想要它要做的只是正常编译application.scss,但它失败了,因为它没有认为变量是定义的;这是合理的,我作为树链接,所以[我假设]它单独编译每个文件,并且在那个时间点变量不可用于这两个文件。

所以我尝试link ../stylesheets/application.css而不是树,我收到错误消息couldn't find file '../stylesheets/application.css' under '/Users/danielcouper/Projects/myproject/app/assets/config'; ie }}

如果我将linklink_tree目录移到manifest.js以使相对路径正常工作,如the Sprockets upgrading notes中所述,我收到错误告诉我那里在assets/config/下没有明文档。

文件[可理解]在某一时刻非常稀疏;我读过的唯一有用的东西是http://eileencodes.com/posts/the-sprockets-4-manifest/,这让我能够达到这一点

1 个答案:

答案 0 :(得分:0)

不要使用link_tree,链接树将导入树中的所有文件。如果您只想要一个application.css文件,请使用:

link application.scss

这样sprockets将从该文件开始,sass将执行导入。

相关问题