diff --git a/src/runtime/components/NuxtImg.vue b/src/runtime/components/NuxtImg.vue index d9850ef04..8adcb437d 100644 --- a/src/runtime/components/NuxtImg.vue +++ b/src/runtime/components/NuxtImg.vue @@ -63,7 +63,6 @@ const imgAttrs = computed(() => ({ ...(!props.placeholder || placeholderLoaded.value) ? { sizes: sizes.value.sizes, srcset: sizes.value.srcset } : {}, - ...import.meta.server ? { onerror: 'this.setAttribute(\'data-error\', 1)' } : {}, ...attrs, })) @@ -133,6 +132,10 @@ if (import.meta.server && import.meta.prerender) { const initialLoad = useNuxtApp().isHydrating const imgEl = useTemplateRef('imgEl') onMounted(() => { + if (imgEl.value) { + imgEl.value.addEventListener('error', handleImgError) + } + if (placeholder.value || props.custom) { const img = new Image() @@ -180,6 +183,10 @@ onMounted(() => { emit('error', event) } }) + +function handleImgError() { + this.setAttribute('data-error', '1') +}