我使用@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 ...
app.css.sass
对@import
有一个_layout.sass
规则,允许我在原始sass文件中共享mixins和变量,然后再将它们编译为app.css
问题是Rails无法识别@import
'部分(_layout.sass
)的更改,并且在我对实际app.css
进行更改之前不会重新生成app.css.sass
1}}文件本身。这大大减慢了我的工作流程,这意味着我必须添加/删除app.css.sass
中的空白行以查看更改。从来没有在3.0中遇到过这个问题。
是否有办法强制sass资产在开发中的每个服务器请求上重新生成?
答案 0 :(得分:29)
使用depend_on
指令可以满足您的要求。这使得给定文件成为基本文件的依赖项(因此在依赖项更改时会重新生成基本文件),但不会将其包含在包中。
例如:
/*
*= depend_on _layout.sass
*= depend_on _constants.sass
*/
@import _layout.sass
@import _constants.sass
请参阅此sass and sprockets blog post以及sprockets documentation(尤其是指令部分)。
答案 1 :(得分:2)
nanothief的回答让我得到了解决方案(谢谢!),但是是间接的。一旦我终于找到时间重新回到这里并查看引用的帖子,它已经更新,说不再需要修复。
果然,看起来这个bug已经在Rails 3.1.0 stable中修复了,并且sass-rails为3.1.0。超好的!我已经确认更新宝石会让一切恢复正常,并在几个应用程序中进行测试。