4

也许我对 SASS/SCSS 在 Rails (2.3.8.) 中的工作方式感到困惑,但我的印象是,如果我包含该选项

Sass::Plugin.options[:always_update] = true

每当我更改我的 SCSS 文件然后再次点击页面(控制器)时,SCSS 都会重新编译。

我似乎无法让它工作,似乎也找不到一个好的教程/示例。我尝试在 Environment.rb 文件中设置上述属性,但它似乎没有做任何事情。我尝试使用 require 'sass' 将其放入自己的初始化程序中,但这似乎也不起作用。

我错过了什么?还是我只是被迫通过运行 sass --watch 命令来保持终端打开,以便能够快速调试/更改我的样式?

谢谢

4

4 回答 4

2

我正在使用 rails 3.1,但遇到了同样的问题。在sass-rails gem 中,文档说

:always_update - This option is not supported. Sprockets uses a controller to access stylesheets in development mode instead of a full scan for changed files.

这可以解释为什么您的:always_update选择不起作用。

对于我的问题,这很大程度上是因为我将config.action_controller.perform_cachingdevelopment.rb 设置为 true (以修复旧 gem 中的一些其他错误)。所以要修复它,我将其更改为:

# config/environments/development.rb
config.action_controller.perform_caching = false
于 2011-09-12T12:23:35.950 回答
0

您应该重新加载控制器的普通视图,而不仅仅是直接加载样式表。

顺便说一句,正如文档所说:always_update,在每次控制器重新加载时更新 css 文件:

是否应在每次访问控制器时更新 CSS 文件,而不是仅在修改模板时更新。默认为假。仅在 Rack、Ruby on Rails 或 Merb 中有意义。

于 2010-08-04T21:28:15.317 回答
0

确保你compass init在你的 rails 项目中运行。它将设置以下内容:

  • 配置/指南针.rb
  • 配置/初始化程序/compass.rb
于 2010-06-20T11:18:18.280 回答
0

我遇到了问题,我命名我的文件以 .css.scss 结尾。仅使用 .scss 后,它就可以工作了。

于 2012-06-08T20:37:51.120 回答