2011-11-28 91 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' –