2015-11-05 38 views
0

我在通常的地方放置了一些默认的后备图像: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

不知道什么尝试。

回答

0

解决方法是添加文件扩展名。没有帮手需要。

实施例:

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