推送到Heroku

时间:2015-11-05 11:05:22

标签: ruby-on-rails heroku

我在通常的地方放置了一些默认的后备图像:app/assets/images

我使用Refile后备选项来引用它们:

<%= attachment_image_tag(current_user.avatars.first, :file, :fill, 18, 18, class: 'img-responsive, img-circle', fallback: asset_path('avatar_18') %>

我还尝试了fallback: 'avatar_18'fallback: ActionController::Base.helpers.asset_path('avatar_18'))

但Heroku上的图像链接已损坏。我可以看到资产正在预编译,其他图像文件也可以正常工作。

我检查了元素,路径看起来是错误的:<img class="attachment file img-responsive, img-circle fallback" src="/avatar_18" alt="Avatar 18">

但据推测,路径应该类似于以下(有效):<img src="/assets/stripe-connect-b97267f03e002d67bf29c5efef5c5364c771a0c3bde885284ecafc5356ce2ea4.png" alt="Stripe connect b97267f03e002d67bf29c5efef5c5364c771a0c3bde885284ecafc5356ce2ea4">

如何获得正确的路径?

编辑:

  • fallback: image_tag('avatar_18')不会在开发中生成任何图像。

  • fallback: image_path('avatar_18')适用于开发,但不适用于生产;来源是错误的:src="/images/avatar_18"。这应该是assets,而不是images

  • fallback: asset_path('avatar_18')适用于开发,但不适用于生产;来源是错误的:src="/avatar_18"。缺少路径assets。此外,摘要缺失。

  • ls public/assets显示文件avatar_18-3c7e2d23b8adbdf979eff7152c156b18817f26b4ceae7525dcdded75d523a052.png

  • 我还尝试检查asset_path:irb(main):001:0> puts helper.asset_path('avatar_18.png') /assets/avatar_18-3c7e2d23b8adbdf979eff7152c156b18817f26b4ceae7525dcdded75d523a052.png => nil

不确定还有什么可以尝试。

1 个答案:

答案 0 :(得分:0)

解决方案是添加文件扩展名。不需要帮助者。

示例:

<%= attachment_image_tag(current_user.avatars.first, :file, :fill, 18, 18, class: 'img-responsive, img-circle', fallback: 'avatar_18.png' %>.