2013-07-08 63 views
0

我剛把我的第一個應用程序推到Heroku上,看起來我的精靈圖片還沒有上傳到服務器。你有什麼線索可以發生什麼?沒有上傳Heroku上的Rails應用程序的資產精靈

例如: 我的文件應用程序/資產/圖像/ app_photo.png

我的CSS文件中定義我的精靈:background: url("app_photo.png");

在我的應用程序,我發現鏈接到我的精靈,但是當我點擊它時,herokuapp.com/assets/app_photo.png路徑呈現「您正在查找的頁面不存在」。

這裏是我推的日誌的Heroku:

-----> Writing config/database.yml to read from DATABASE_URL 
-----> Preparing app for Rails asset pipeline 
     Detected manifest file, assuming assets were compiled locally 
-----> Discovering process types 
     Procfile declares types  -> (none) 
     Default types for Ruby/Rails -> console, rake, web, worker 

-----> Compiled slug size: 37.9MB 
-----> Launching... done, v17 

當我更換background: url("app_photo.png");background: image-url("app_photo.png");,這裏是預編譯的CSS:

.app_photo{background:url(/assets/app_photo-f095c78ecb698e651f262b36a593dc8e.png);height:64px;width:64px;text-indent:-9999px} 
+0

在將應用推送到heroku時,您是否得到預編譯錯誤? –

+0

不,沒有錯誤... –

+0

你把你的/ assets文件夾添加到git中嗎? – David

回答

2

當使用滑軌資產管道,你應該引用您的資產在SCSS文件使用:

image-url("your_image.png") 

查看Rails Asset Pipeline documentation瞭解更多信息。

使用Heroku的你有3種選擇:

  1. 本地編譯資產。
  2. 編譯slug時編譯資產。
  3. 在運行期間編譯資產。

有關更多信息,請參閱heroku's documentation

在你config/production.rb文件:

config.serve_static_assets = true 

的Heroku雪松架構無法提供靜態資產。

+0

我必須替換'background:url(「app_photo.png」);'by'background:image-url(「app_photo.png」)'? –

+0

如果你想使用資產管道,是的。看看這裏知道爲什麼http://guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care-questionmark –

+0

啊!當我在我的CSS中用'image_url'替換'url'時,它不工作... –

相關問題