我在通常的地方放置了一些默認的後備圖像: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
不知道什麼嘗試。