2015-10-30 22 views
1

你好,我已經列入我的Gemfile以下樣式表,圖片和javascript沒有在rails4加載Heroku的服務器上

group :production, :staging do 
    gem 'rails_12factor' 
end 

和inmy樣式表我已經包含圖像作爲mytest.css.scss

.abc{background: image-url('/assets/mobile/phone.png');} 
在production.rb

config.serve_static_assets = true 
config.assets.compile = true 

和herokurun慶典

我有耙資產:預編譯,但也仍然沒有加載圖片,樣式表和javascripts。請指導我如何來解決這個問題

回答

1

嘗試其中之一:

background-image: image-url("logo.png") 

background-image: asset-url("logo.png", image) 

background-image: asset-url($asset, $asset-type) 

background-image: asset-data-url("logo.png") 
0

有時候,Heroku的需要時間來識別新的資產 - 我們發現,如果重新啓動預編譯後的賽道,它往往加載他們在刷新:heroku restart

你應該與引用的動態助手陪這個(按照sadaf2605的回答是:

#app/assets/stylesheets/application.js 
.element { 
    background: asset_url("your_image_url.png"); 
} 

你需要做的另一件事是production預編譯 -

rake assets:precompile RAILS_ENV=production


調試

這是艱難的,看看有什麼問題可能是;我們調試這主要方法如下:

  1. 在推,right-click您的應用和view source
  2. console,你可能會看到一系列的404resource not found)錯誤。
  3. 這些錯誤將表示Rails正在查找的文件 - 查找fingerprints

如果應用程序正在查找指紋文件,這是一個好兆頭(這意味着您擁有的文件不正確)。爲了解決這個問題,你應該只之前預編譯發送到Heroku的:

$ rake assets:precompile RAILS_ENV=production 
$ git add . 
$ git commit -a -m "Fix" 
$ git push heroku master 

這將正確的文件發送到Heroku的。

如果您的應用程序不在查找指紋文件,這意味着您必須在CSS中正確引用它們。我想你已經知道這個(上面寫的)。

相關問題