[英]Vue.js/Nuxt.js Load Fallback Image on 404
我正在嘗試設置默認圖像(占位符圖像)以防找不到圖像資源(404)。 我有一篇字典文章,它對鍵 author_image 有一個值。 因此該字符串不為空,但它無法加載該圖像。
在我的模板中:
<img
:src="article.author_image"
alt="Author Image"
@error="setFallbackImageUrl"
>
在我的方法中:
methods: {
setFallbackImageUrl(event) {
console.log('Image failed to load, setting fallback.')
event.target.src = '~/assets/icons/avatar.svg'
}
}
我可以在我的控制台日志中看到調用了 setFallbackImageUrl 但圖像 src 未更新。 我確保avatar.svg
實際上是正確的,如果我只是在article.author_image
上對其進行硬編碼即可。
關於我可能做錯了什么的任何建議?
通過 vue loader 和 webpack 加載圖像時出現問題,因為文件擴展名(.png、.svg 等)不是模塊請求( 閱讀有關使用 vue loader 處理資產的更多信息)。
您需要將其包裝在 require 中才能訪問它。 @Toni Michel Caubet 的示例之所以有效,是因為他使用了鏈接。
這對我有用。
methods: {
setFallbackImageUrl(event) {
console.log('Image failed to load, setting fallback.')
event.target.src = require(`~/assets/icons/${'avatar' + '.svg'}`)
}
}
注意:不需要將圖像包裝在“${'avatar' + '.svg'}”中,我只是刪除了我的動態值並添加了“avatar”。
以防萬一有人用 webpack(來自資產/靜態文件)撞牆 從這里接受的答案應該解決它:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.