2011-07-13 181 views
4

我正在使用Rails 3.1的資產管道,雖然它似乎在我的本地主機上的開發環境中完美地工作,但我在發動機工地上遇到了很多問題。Rails 3.1資產管道和緩存

這是我的基本問題。

當我包括在我的SCSS文件中的一個背景圖片:

 a { 
     color: #3c7f8b; 
     font-weight: bold; 
     padding-left: 35px; 
     font-size: 13px; 
     display: block; 
     background: white url(shade.png) top right; 
     &:hover { 
      color: #222222; 
      background: white url(shade2.png) top right; } 
     &.on { 
      color: #222222; 
      background: white url(shade2.png) top right; } } } 

我遇到了以下問題:即使我有預編譯我的資產,瀏覽器請求的/assets/shade.png代替/assets/shade-FINGERPRINT.png這是存在的實際文件。

有沒有人知道我可以通過在我的.scss文件中的資產文件夾中引用圖像來解決這個問題?

+0

資產管道的一些文件是處於測試階段,在有一些好東西 - http://ryanbigg.com/guides/asset_pipeline.html – house9

+0

原來這實際上是我的部署策略的一個問題,而不是實際的資產管道。 – TheDelChop

+0

@TheDelChop,您可以使用您的部署策略發佈問題的詳細信息嗎? – mandreko

回答

2

退房從對這個職位「tybro0103」的答案 - Rails 3.1 and Image Assets

根本上改變從SCSS文件到scss.erb,然後使用asset_path helper方法

預編譯之前部署

免責聲明:我自己沒有試過這個

4

在Rails 3.1中使用scss時,您應該使用image-url而不是url來引用圖像。

此外,確保您在sass-rails之前加載指南針,因爲sass-rails會覆蓋資產方法以使用資產管道。

最後,如果你使用Capistrano的部署,加入

load 'deploy/assets' 

爲了使資產編譯當你部署。

-1

qnm其實我認爲image_url幫手有一個錯誤。不知道他們是否修正了這個問題,但我看到了一個建議,使用asset_url來表示「圖像」。

即ASSET_URL(「some.img」,「圖像)