如何在Rails 3.1中使用assets pipeline自动将scss编译成css?

6

新的Rails 3.1资产管道让我困惑了很久。在Rails 3.0.x中,使用sass gem时,当我编辑.scss文件时,我的全局css文件会得到更新。但在Rails 3.1中,这种方法不再有效。似乎我必须运行一个rake任务才能在修改.scss文件后更新我的css文件。我感觉我对新资产管道有什么误解,但我不知道是什么。能否有人提供一个解决方案或解释这个问题?谢谢。

3个回答

6
有两个可能的原因。我假设您处于开发模式,并且所有的gem都已加载。
1. 配置 在开发模式下,文件是按需编译并缓存的,直到进行任何更改。您必须将新的3.1配置选项设置在正确的文件中,否则可能无法正常工作。
请查看Rails指南上升级的部分。
2. 扩展名 另一个问题是以正确的顺序获取扩展名。对于 scss 文件,应该使用 file.css.scss 扩展名。这将首先告诉 Sprockets 解析文件为 scss,然后在其后加上 css 扩展名。如果文件扩展名为 .erb,则应该使用 file.css.scss.erb,这样 erb 将首先处理,然后再处理 scss。
升级应用程序有点棘手,因为有很多变化。资产管道指南提供了许多有用的信息和建议。

我想说我已经按照指南的步骤操作了,但我仍需要在开发环境中编译我的资源文件,以使CSS的更改生效。任何帮助将不胜感激。 - kakubei
请检查您的配置文件中的设置是否与资产管道指南中的设置相匹配。然后在开发环境中删除公共目录中的资产目录,这样您就可以继续进行了。 - Richard Hulse

0

0

对我来说,这个问题很容易解决。 我只需从assets/stylesheets中删除所有预编译的*.css文件,保留所有*.scss文件。Rails可以直接使用*.scss文件,无需预编译。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接