2011-09-29 110 views
2

這裏失敗是rake assets:precompile --trace的Rails 3.1資產:預編譯任務與「壞URI」錯誤

** Invoke assets:precompile (first_time) 
** Execute assets:precompile 
rake aborted! 
bad URI(is not URI?): 

Tasks: TOP => environment 

沒有太多的去對整個錯誤。

+1

您是否在運行命令之前嘗試明確設置RAILS_ENV變量?即'RAILS_ENV =開發耙子資產:預編譯' – Pygmalion

+0

我曾嘗試過與RAILS_ENV =生產以及沒有(我認爲發展將是默認的,但我會嘗試下班後)。 –

+0

所以看起來像RAILS_ENV =開發工作只是沒有生產 –

回答

2

原來,這在很大程度上是用戶錯誤,以及我對如何調用/ environment文件缺乏瞭解。我有一個部分來解析Heroku中的CLOUDANT_URL環境變量,當然這在預編譯階段是不可用的。這可能對我來說應該更明顯。

我把它搬到了一個單獨的初始化程序中,它有一個if Rails.env.production?塊環繞它。我希望這是處理這個問題的合理方法。

感謝大家的幫助。

0

此消息很可能是因爲您的某個資產路徑或名稱中包含非法字符。通過非法,我的意思是一個需要編碼的字符在URL中使用。

我原以爲Rails會這樣做,但我不能肯定地說沒有深入代碼。

查看文件名中的空格和擴展字符等內容,並查看是否刪除它們可以解決問題。

如果是這種情況,您可以使用方法URI.encode(string)對它們進行編碼。

+0

沒有任何文件在命名中有任何非標準。有沒有辦法得到更具體的錯誤? –