2013-10-16 66 views
2

我已經爲我的客戶開發了一項新要求,我在現有的樣式表文件中添加了一些css規則,這些更改在開發過程中反映在本地計算機上。但是當我將更改移動到臨時服務器並重新啓動nginx時,我的所有功能都正常工作,但是我的css規則沒有得到應用,當我檢查了firebug控制檯時,包含特定文件但我的新css規則不在那裏,應該我預編譯我的CSS樣式表,如果是的話,如何在rails 2.3.x中做到這一點...?如何在軌道2.3中預編譯CSS樣式表?

在此先感謝。

+0

你爲什麼不去做一個完整的部署,而不是複製文件的? – usha

回答

1

Rails 2.3沒有資產管道。所以不需要預先編譯資產。您的資產應已位於Rails.root/public/stylesheets文件夾中

Rails.root/public/文件夾中的任何內容均由web server直接提供,並且不涉及導軌。

你的問題很可能是某種緩存。您可以嘗試直接使用它的URL來獲取樣式表,如下所示:

http://server.domain/stylesheets/mystyles.css 

並查看您的更改是否得到反映。

你也可以檢查你的Firebug - >Net標籤,看看樣式表正在從服務器下載(HTTP返回代碼:200 OK)或它被從緩存(HTTP返回代碼回升:304 Not Modified

有辦法來處理這種類型的問題,其中rails 3.1 asset pipeline合併。

  1. 使用不同的文件名時內容改變
  2. 使用ETag頭
  3. 追加一個唯一的哈希(使用該文件的時間戳來計算),爲query string。例如http://domain/style.css?djfhsfhkkjdsfh其中djfhsfhkkjdsfh將在每次修改style.css時更改。

是一對常用的技巧。

如果你是熱衷於使用資產管道與rails 2.3你有選擇,如Jammit

+0

感謝您的回覆,我通過檢查螢火蟲控制檯來跟蹤您的解決方案,稍後當服務器重新啓動時它工作正常。 – rajesh023