2016-02-02 51 views
1

我有一個使用列標題進行排序的應用程序。當用戶點擊標題時,標題旁邊會出現一個圖標來顯示排序的方向。在部署我的Ruby on Rails應用程序時丟失圖標

它使用CSS選擇圖標並將其顯示:

.pretty th .asc { 
    background-image: url(up-arrow.png); 
} 

.pretty th .desc { 
    background-image: url(down-arrow.png); 
} 

這個工作對我的開發版本,儘管我希望的路徑,圖標是「/images/up-arrow.png '而不是'up-arrow.png'。但是,當我將應用程序部署到我的服務器時,無論我是否使用/圖標前綴,都不會顯示圖標。有任何想法嗎?

+0

VB6那些日子 –

+0

請不要「謝謝」​​。雖然它看起來像是一件禮貌的事情,但Stack Overflow是一本參考書,而不是討論板。想一想食譜或百科全書的編程問題和答案;你會看到「嗨」,「謝謝」和類似的?禮貌是偉大的,但稱呼,valedictions和簽名被認爲是絨毛,我們更喜歡簡潔和堅持細節。 –

回答

3

因爲要部署到非開發環境,Rails會想到"precompile"您的資產。這意味着filenames will be fingerprinted(他們會附加一個很大的數字)。

由於資產指紋意味着文件名是在production/staging不同,你必須使用你的CSS的asset-helpers之一:

.pretty th .asc { 
    background-image: image-url("up-arrow.png"); 
} 

.pretty th .desc { 
    background-image: image-url("down-arrow.png"); 
} 

你會想看看「How to reference images in CSS within Rails 4」的細節。

的一個問題,您可能有是,你可能要切換你的CSS爲使用的SCSS/SASSproprocessor。這會讓你訪問image-url助手。

0

,因爲資產流水線處理圖像的方式,你需要以不同的參考圖片名稱:

.pretty th .asc { 
    background-image: url("/assets/up-arrow.png"); 
} 

.pretty th .desc { 
    background-image: url("/assets/down-arrow.png"); 
} 
+0

這是不對的 - 這是你必須使用'image_url' –

+0

啊,沒有意識到Rails默認包含'sass-rails'。它也是'image-url',順便說一句 – Brennan

相關問題