我在通常的地方放置了一些默认的后备图像:app/assets/images
。当推送到Heroku时,一些图像链接断开
我指的是他们使用重新提交后备选项:
<%= 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
不知道什么尝试。