【问题标题】:Assets url Rails 4.1 and Heroku资产 url Rails 4.1 和 Heroku
【发布时间】:2014-05-08 18:45:04
【问题描述】:

将应用程序部署到 Heroku 时似乎总是出现问题,今天我的图像没有被渲染。

我跑了

rake assets:precompile RAILS_ENV=produciton

提交更改并推送到heroku

以我为例,我有

<%= image_tag('/assets/logo.png') %>

但图像没有被渲染,因为它正在寻找 logo.png 而不是

logo-321321327454547676576586876.png

这是在运行预编译时生成的。我想我在我的 production.rb 文件 somwhere 中缺少一个选项

Rails.application.configure do

config.consider_all_requests_local       = false
config.action_controller.perform_caching = true

config.serve_static_assets = false

config.assets.js_compressor = :uglifier

config.assets.compile = false

config.assets.digest = true

config.assets.version = '1.0'

config.log_level = :info

config.active_support.deprecation = :notify

config.log_formatter = ::Logger::Formatter.new

config.active_record.dump_schema_after_migration = false
end

如何让应用程序查找预编译时创建的生成图像 url?一些简单的我猜

我将在未来使用 S3 存储桶来提供这些服务,但我有兴趣让它单独与 Heroku 一起工作

谢谢

【问题讨论】:

  • 它在 app/assets/images 中吗?如果是这样,您应该只需要image_tag('logo.png')
  • 如果图片在app/assets/photos/logo.png中,会变成image_tag(/assets/photos/logo.png')还是image_tag(/photos/logo.png')
  • @Richlewis:试试&lt;%= asset-path 'logo.png' %&gt;
  • 我不知道,但我会这么认为。您可以只在图像下拥有子文件夹并拥有image_tag('photos/logo.png')
  • 谢谢,在详细阅读文档后尝试过 :-)

标签: ruby-on-rails ruby heroku


【解决方案1】:

在阅读了更详细的 api 文档并听取了 Baloo 的建议后,答案非常简单,只是我的路径声明的语法问题

如果您的图片在资产下,请使用

<%= image_tag('image.ext') %>

如果它在子目录中,则使用

<%= image_tag('sub-dir/image.ext') %>

希望这对其他人有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多