From 9758c407099c115914f99edde37bc74ffdae6fe1 Mon Sep 17 00:00:00 2001 From: bobeatspie <76262996+bobeatspie@users.noreply.github.com> Date: Tue, 1 Jul 2025 14:04:06 +0000 Subject: [PATCH] fix(NuxtImg): add image onerror handler in internal script to avoid script-src-attr CSP violation --- src/runtime/components/NuxtImg.vue | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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') +}