这可能为时尚早,无法获得好的答案,但是我们走了:我有一个测试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 }}
如果我将link
从link_tree
目录移到manifest.js
以使相对路径正常工作,如the Sprockets upgrading notes中所述,我收到错误告诉我那里在assets/config/
下没有明文档。
文件[可理解]在某一时刻非常稀疏;我读过的唯一有用的东西是http://eileencodes.com/posts/the-sprockets-4-manifest/,这让我能够达到这一点
答案 0 :(得分:0)
不要使用link_tree
,链接树将导入树中的所有文件。如果您只想要一个application.css文件,请使用:
link application.scss
这样sprockets将从该文件开始,sass将执行导入。