簡體   English   中英

樣式表,圖像和javascript未在rails4的heroku服務器上加載

[英]Stylesheets, images and javascript are not loading on heroku server in rails4

您好,我的gemfile中包含以下內容

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

和我的樣式表中,我將圖像包括為mytest.css.scss

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

在production.rb中

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

在herokurun bash中,我有rake資產:也可以預編譯,但仍然不加載圖像,樣式表和javascript。 請指導我如何解決這個問題

嘗試以下方法之一:

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")

有時,Heroku需要花費一些時間來識別新資產-我們發現,如果在預編譯后重新啟動dyno,通常會在刷新時加載它們: 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正在查找哪些文件-查找指紋

如果應用程序正在尋找指紋文件,則表明它是一個好兆頭(表示您的文件不正確)。 要解決此問題,您應該發送給Heroku 之前進行預編譯:

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM