Rails 4图像不能在heroku上加载

我花了一天的好时间尝试让图像加载到我的heroku应用程序上。 我尝试的所有东西都可以在本地使用,但在部署到heroku之后不会。

我有png文件保存在我的资产下的图像文件夹。 我在我的CSS中引用这些图像的语法,例如;

#signin {
  background: url(<%= asset_path 'sf.png' %>);
  background-size: 100%;
}

在heroku中,当我检查背景时,assets / sf.png链接存在,但是当您点击它时,它会显示一张破碎的图像,表明它没有正确加载。

我试着在true和false之间切换production.rb文件中的config.serve_static_assets = false ,但都不起作用。

我也有

group :production do
  gem 'pg'
  gem 'rails_12factor'
end

预编译总是成功的。

Rails 4.关于还有什么可以尝试的想法?


我需要结合几种解决方案来完成这项工作,这就是我所做的:

的Gemfile

gem 'rails_12factor', group: :production

在我的Heroku控制台中

heroku labs:enable user-env-compile -a yourapp

production.rb

config.serve_static_assets = true
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
config.assets.compile = true

我不需要在本地预先编译资产。


你需要做两件事来解决它。 首先,在production.rb文件中将这两行从false更改为true。

      config.assets.compile = true
      config.assets.digest = true

其次,如果你的图像的语法如此

    background: url("imgo.jpg") 

将其更改为

     background: image-url("image.jpg")

我希望它能完成你的工作。


我遇到的另一个问题是,我在本地预先编译我的资产,然后将其加载到heroku。 这要求您遵循一组不同的步骤,可以在下面找到。 如果您在本地预先编译资产,则必须执行这些步骤,否则您对资产文件夹所做的任何更新都不会反映在产品中。

https://devcenter.heroku.com/articles/rails-asset-pipeline

RAILS_ENV=production bundle exec rake assets:precompile

commitpush送到服务器。

链接地址: http://www.djcxy.com/p/78013.html

上一篇: Rails 4 images not loading on heroku

下一篇: How to reference images in CSS within Rails 4