2

在RefineryCMS寶石的SCSS,他們的目標圖像的背景是這樣的:IMAGE_URL缺少資產前綴

body { 
    min-height: 100%; 
    margin: 0; 
    padding: 0; 
    font-size: 10px; 
    font-family: Verdana; 
    line-height: 1.5em; 
    background: #303030 image_url('refinery/page_bg.png') repeat; 
} 

,並在編譯時,它會是這樣的:

background: #303030 image_url('refinery/page_bg.png') repeat; 

但,page_bg.png是資產的文件夾:assets/refinery/page_bg.png

如果我嘗試www.mydomain.com/assets/refinery/page_bg.png我可以看到在排版圖像 所以,image_url('refinery/page_bg.png') sciled缺少前綴assets/

我該如何解決這個問題?

我試圖在一個名爲refinerypublic文件夾中創建一個文件夾,把裏面page_bg.png,但是,我沒有工作,而www.mydomain.com/refinery/page_bg.png將不顯示圖像。

有沒有解決方案呢?任何人都可以幫忙?修復資產前綴當然更好,但是,我不介意直接使用公用文件夾。

回答

0

asset-pipeline config將一些目錄定義爲asset目錄。這意味着資產目錄中的內容的引用前面沒有assets。例如,在大多數默認配置中,資產目錄是:app/assets,lib/assetsvendor/assets。您可以將.png背景圖像放在每個子文件夾中,名稱爲image,並且可以像這樣引用它:background: url(your_image.png)

編輯:根據this discussion,如果部署到Hiroku,應該有sass-rails包括在資產預編譯的過程中。

+0

您的意思是說,如果我從image_url中刪除了「精煉廠/」,它將從資產文件夾中提供?如果是這樣,那麼我如何覆蓋供應商scss來做出這個改變? – simo

+0

不,'/煉油廠'是'assets'的子目錄。如果圖像是(例如)在'app/assets/refinery/images'中,則可以使用url('refinery/images/yourimg.png')'。 –

+0

我明白了,但問題可以通過使用heroku設置預編譯scss文件來解決,如果您有興趣,請參閱https://groups.google.com/forum/?fromgroups=#!topic/refinery- cms/xx85GnzdqCg – simo