From 2cb37e760a13eb873905663fcbd4b199099b7bfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Tue, 22 Sep 2026 10:35:58 +0200 Subject: [PATCH] fix: serve svg sprite locally for same-origin restrictions --- .../Configuration/TypoScript/Extensions/Replacer.typoscript | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Extensions/Replacer.typoscript b/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Extensions/Replacer.typoscript index 6a7942de..da25e3d0 100644 --- a/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Extensions/Replacer.typoscript +++ b/public/typo3conf/ext/ep_theme/Configuration/TypoScript/Extensions/Replacer.typoscript @@ -6,8 +6,12 @@ config.tx_replacer { # quotes - anchoring on `"` alone would skip every font. # typo3conf is scoped to ep_theme/Resources/Public on purpose: it keeps other # extensions, Configuration/ and Resources/Private/ out of the CDN. + # The icon sprite is excluded: SVG may only reference a + # document from the same origin - browsers block an external sprite on the CDN + # host outright, and no CORS header on bunny.net changes that. It has to stay + # on the origin domain or every icon renders empty. search { - 10 = /(["'])\/?(fileadmin|typo3temp|uploads|typo3conf\/ext\/ep_theme\/Resources\/Public)/ + 10 = /(["'])\/?(fileadmin|typo3temp|uploads|typo3conf\/ext\/ep_theme\/Resources\/Public(?!\/images\/icons_sprite\.svg))/ } replace {