2011-11-28 60 views
3

我对Rails相当陌生,而且我在缓存css文件时遇到了一些恼人的问题。Rails 3.1 .css.less缓存错误

我有一个.css.less文件,里面有导入。这是该应用程序包含的唯一样式表,所以其他文件只能导入一次并通过此独特样式表导入。 其中一个导入.css.less样式表似乎被缓存在某处,因为当我更改它的源代码时,它在浏览器中不会更改。

我只能看到我所做的更改,如果我改变根样式表中的东西。

我有服务器处于开发模式,所以缓存应该关闭。我也用过<%= stylesheet_include_tag "style", :cache => false %>

我试过Chrome和Firefox,有和没有清除缓存。总是相同的结果,如果我只在该文件上工作,页面在重新加载时收到的css没有更改...

我也停止了服务器和rm应用程序的tmp文件夹中的所有内容。没有变化。

我使用Rails 3.1和Ruby 1.9.3,使用less-bootstrap-rails gem。根样式表和导入的都有.css.less扩展名。

我错过了什么?

谢谢!

回答

3

这是一个我认为资产管道崩溃的领域,但我认为没有很好的解决方法。

如果我没有记错,为了获得您在.css.less文件中包含/需要的文件的更改,您需要更改.css.less文件本身。

+0

谢谢你,这让我疯狂!这是答案! – andy

0

添加到您的config/application.rb中

# Version of your assets, change this if you want to expire all your assets 
config.assets.version = '1.0' 

多见于:Ruby on Rails Guide: Asset Pipeline

+0

这已经在application.rb中。顺便说一句,从我从指南所了解的是从旧版本升级时需要的,这不是我的情况。 – mokagio

+0

这在Rails 4中不起作用,'config.assets.configure {| env | env.cache = ActiveSupport :: Cache.lookup_store(:null_store)}'。就我所知,在Rails 4中,我们只需要忍受它。可怕。 :( – bronson

1

我对面的完全相同的问题就来了。

我发现如果您将*.css.less文件(里面的导入文件)重命名为*.less,那么这个奇怪的缓存问题就会得到解决。

3

我对Rails 4.0.8有这个感觉,真气。上面提到的配置更改没有帮助。这里是什么似乎已经修复它对我来说:

  • 确保没有文件共享一个基本名称。例如,你有一个reports.css.less和一个reports.js.coffee?不管他们是否在同一个目录中都没关系。重命名或删除其中的一个。 (我将它更改为reports-styles.css.less)。

  • 吹走缓存:室射频TMP /缓存

  • 重新启动您的Rails应用程序。

这似乎是一个体面的修复,但由于我不知道实际发生了什么,这可能是完全错误的,它现在只是巧合。对不起,这个答案并不严谨!

+1

如果我没有遇到完全相同的问题,我会认为你在破解。另一种清除缓存CSS的方法:'$ rake assets:clobber' –