2011-11-08 95 views
3

我以爲自己的資產管道已經解決了,但沒有了。file.png沒有預編譯

我有一個名爲clients.css.scss

.client 
{ 

    .list_view 
    { 
    width: 650px; 
    height: 500px; 
    overflow: auto; 

    table 
    { 
     width: 650px; 
     border: solid 2px #999999; 
     border-collapse: collapse; 

     thead tr 
     { 
     background: image-url('list-view-header.png') repeat-x; 
     } 

     thead tr:first-child 
     { 
     background-image: none; 
     } 
    } 
    } 
} 

每次我試圖預編譯它在生產中我不斷收到一個「file.png不預編譯」錯誤樣式表。

bundle exec rake assets:precompile RAILS_ENV=production --trace 
/usr/local/rvm/gems/[email protected]/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_ 
** Invoke assets:precompile (first_time) 
** Execute assets:precompile 
/usr/local/rvm/gems/[email protected]/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_ 
rake aborted! 
list-view-header.png isn't precompiled 
    (in /var/rails/pm.onlinetherapy.com/app/assets/stylesheets/clients.css.scss.erb) 

Tasks: TOP => assets:precompile 
(See full trace by running task with --trace) 

圖像文件位於app/assets/images目錄中,我可以在擴展指紋名稱的public/assets目錄中看到它。

任何想法都會有所幫助。

+0

請[請勿將簽名或標語添加到您的帖子中](http://stackoverflow.com/faq#signatures)。 – meagar

回答

1

我相信你想要的東西是這樣的:

thead tr 
    { 
    background: image-url('/assets/list-view-header.png') repeat-x; 
    } 

或者你可以改變你的clients.css.scss到clients.css.scss.erb並做到這一點:

thead tr 
    { 
    background: image-url(<%= asset_path "list-view-header.png" %>) repeat-x; 
    } 
+0

我試過了,rake命令通過了這張圖片。謝謝你,但我不明白爲什麼這個工程[http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets](http://guides.rubyonrails.org/asset_pipeline .html#coding-links-to-assets)表示** image-url(「rails.png」)**變爲** url(/assets/rails.png)**。從那我會認爲/assets/list-view-header.png不應該包括**'/ assets/**。這有什麼解釋嗎?我被教導要把guides.rubyonrails.org作爲Ruby on Rails的聖經。 –

+0

我終於通過耙子資產工作:預編譯混亂,並沒有任何錯誤完成。但是,現在這些圖像不會顯示在製作網站上。查看HTML顯示'background:image-url('/ assets/list-view-header.png')repeat-x;'沒有將指紋附加到文件名上。我不會說這是成功的。 –

+0

我嘗試將文件重命名爲clients.css.scss.erb並使用asset_path'background:image-url(<%= asset_path「list-view-header.png」%>)repeat-x;'這似乎是上班。仍然不知道爲什麼其他方法不起作用。 –