2015-11-05 40 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' %>.