繁体   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