图片未在 Heroku 上提供 Rails 5 个应用

Images not being served on Heroku Rails 5 App

我在 Heroku 上使用 Rails 5 从我的资产管道提供静态文件时遇到问题。我查看了其他问题,但 none 似乎可以解决问题。

我明白了 HomeController#index 缺少此请求格式的模板 和变体。 request.formats: ["image/png"] request.variant: []

我的config/production.rb

    config.assets.compile = false

    config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?

    if ENV["RAILS_LOG_TO_STDOUT"].present?
     logger           = ActiveSupport::Logger.new(STDOUT)
     logger.formatter = config.log_formatter
     config.logger = ActiveSupport::TaggedLogging.new(logger)
    end

在本地编译所有资产并推送到 heroku。

尝试以下步骤:

  1. 更改 config/environments/production.rb 中的行 config.assets.compile = true

  2. 运行 命令:

    RAILS_ENV=production rake assets:precompile

  3. 将所有带manifest.rb的编译资源推送到heroku

在本地编译资产不是一个好的做法,应该避免,因为工件不应该在版本控制中。我在尝试使用 sass 设置背景图像并使用 image-url 助手生成正确的 url.[=14 时遇到了同样的问题=]

background: image-url('my-image.png') no-repeat center;

对于图像标签和 erb css 模板,有 image_pathimage_tag rails 助手。