Rails 3.1资产管道没有获取@ import'd工作表的更改

Joh*_*ein 19 import sass ruby-on-rails-3.1 asset-pipeline

我使用@import'部分表来组织我的css/sass:

/app
  /assets
    /stylesheets
      _constants.sass
      _layout.sass
      ...
      app.css.sass

app.css.sass:
  @import _constants.sass
  // basic styles
  @import _layout.sass
  @import ...
Run Code Online (Sandbox Code Playgroud)

app.css.sass有一个@import规则_layout.sass,允许我在原始sass文件被压缩之前共享mixins和变量app.css

问题是Rails无法识别@import'd partials(_layout.sass)app.css的更改,并且在我对实际app.css.sass文件本身进行更改之前不会重新生成.这大大减慢了我的工作流程,意味着我必须添加/删除空行app.css.sass以查看更改.3.0中从未遇到过这个问题.

有没有办法迫使sass资产在开发中的每个服务器请求上重新生成?

Dav*_*ani 29

使用depend_on指令可以满足您的要求.这使得给定文件成为基本文件的依赖项(因此在依赖项更改时会重新生成基本文件),但不会将其包含在bundle中.

例如:

/*
*= depend_on _layout.sass
*= depend_on _constants.sass
*/
@import _layout.sass
@import _constants.sass
Run Code Online (Sandbox Code Playgroud)

请参阅此sass和sprockets博客文章以及sprockets文档(尤其是指令部分).

  • @AdamSpiers它应该不相关,因为bug已经修复了一段时间.然而,答案一直在起来投票,所以它显然在帮助一些人. (2认同)