2013-01-07 179 views
56

我正在使用rails 4 & ruby​​ 1.9.3爲我的應用程序和fancybox2-rails gem,但是資產管道存在一個普遍問題。如果我運行rake task預編譯,那麼一切都很好,除了vendor/assets/images../gems/ruby-1.9.3-p327/gems/fancybox2-rails-0.2.1/vendor/assets/images中的圖像。來自這兩個文件夾的圖像沒有經過預編譯,最終我遇到了與不存在圖像的死鏈接問題。有什麼建議麼?rails 4資產管道供應商資產圖像未被預編譯

回答

77

似乎圖像默認情況下只包含在app/assets文件夾中。所以,解決的辦法就是添加此行到config/application.rb中

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif) 
+3

這是爲我工作,但這個設置*應該*進入config/environments/production.rb文件。但是,目前在rails 4.0.0.beta1中已損壞(請參閱https://github.com/rails/rails/issues/9572和https://github.com/rails/sprockets-rails/pull/36) – ottobar

+1

我最初有2張圖片不能加載,fancybox_loading.gif和fancybox_overlay.png,這個修正overlay.png,但loading.gif仍然不起作用。 – Jamesla

+0

把它放在production.rb中,但它沒有幫助部署。編譯資源中不存在fancybox圖像。 – Almaron

8

這聽起來Sporker可以從供應商/資產/圖像不自動加載圖像。應用程序/資產,LIB /資產或供應商/資產:

2.2資產組織 管道資產可以在一個三個位置被放置的應用程序內。

應用程序/資產適用於應用程序擁有的資產,例如自定義圖像,JavaScript文件或樣式表。

lib/assets是用於您自己的庫的代碼,它不適合應用程序的範圍或跨應用程序共享的那些庫。

供應商/資產是由外部實體擁有的資產,比如JavaScript的插件代碼和CSS框架

從來自guides.rubyonrails.org的描述,我不認爲他們忽略了供應商/資產/無意的圖像。

所以我剛纔添加後續行:

#config/application.rb 
config.assets.paths << Rails.root.join("vendor", "assets", "images") 

而且,我解決我的問題。 我希望這會對你有用。

+6

這不適合我。 – newUserNameHere

+1

沒有在Rails 4.1.5上工作 –

4

對於我的Rails 4.2.x版的項目,我剛搬到供應商圖像vendor/assets/images並添加這application.rb:開發生產

config.assets.precompile += %w(vendor/assets/images/*) 

工作正常。