【发布时间】:2012-10-04 23:42:26
【问题描述】:
Rails 3.2 中的资产管道似乎存在重大问题。这一切都开始了,因为我想在开发环境中工作时为我的 application.css.scss 添加一个单一的、简单的样式。我过去做过这个没有问题,它只是工作,因为没有发生缓存(如你所料)。
但是,当我今天尝试添加新样式时,Rails 拒绝加载更新后的样式。我检查了我的环境设置,它们在 development.rb 中似乎都是正确的,
config.assets.compress = false
config.assets.debug = true
我做了一些研究,发现了rails 3.1 asset pipeline css caching in development。按照该问题中给出的建议,我确保删除了 tmp/cache 文件夹并使用 rake assets:clean 进行了清理,以防万一我在某个时候在生产模式下运行了该应用程序并且需要清理它。
在这一切之后,仍然没有运气。为了确认我没有犯愚蠢的错误,我暂时将样式移到了另一个样式表。没问题!它工作得很好!所以我将样式移回,它不会再次加载。
我还检查了控制台。它正确地重新加载了另一个样式表,但没有提及原始样式表。
现在,主要问题来了。作为最后的努力,我尝试清除浏览器缓存。我通常对此没有任何问题,但我认为某些内容可能会被缓存并导致问题。我清除了它并重新加载了应用程序,然后....没有加载任何样式!
似乎我所有的 application.css.scss 样式都在以前的某个时间点被缓存,现在我根本无法重新加载它们!
更新:
虽然我还没有解决这个问题,但我已经通过创建一个名为 main.css.scss 的新样式表(名称不重要)并将所有样式移动到新样式表来解决它。这是因为清单中的 //= require_tree . 指令有效。
但如果有人能解释为什么原始样式表停止工作,我很想知道!
【问题讨论】:
标签: caching ruby-on-rails-3.2 stylesheet asset-pipeline