diff --git a/vite.config.js b/vite.config.js index 5051298..6367c39 100644 --- a/vite.config.js +++ b/vite.config.js @@ -6,6 +6,9 @@ import path from 'path' * Plugin: les fonts restent dans assets/fonts/, sans duplication dans dist/. * Vite les copie dans dist/ pendant le build — ce plugin les supprime du bundle * et réécrit leurs URLs dans le CSS pour pointer vers /assets/fonts/. + * + * Également : les URLs /assets/img/ dans le CSS sont préservées telles quelles + * (Vite les réécrit en supprimant le chemin à cause de assetFileNames: '[name].[ext]'). */ function keepFontsInPlace() { const fontRe = /\.(woff2?|ttf|otf)$/i @@ -19,10 +22,19 @@ function keepFontsInPlace() { } for (const chunk of Object.values(bundle)) { if (chunk.type === 'asset' && chunk.fileName.endsWith('.css')) { + // Réécrit les URLs des fonts chunk.source = chunk.source.replace( /url\((['"]?)([^'")\s]*\.(woff2?|ttf|otf))\1\)/gi, (_, _q, p) => `url("/assets/fonts/${decodeURIComponent(p.split('/').pop())}")` ) + // Réécrit les URLs des images /assets/img/ (Vite supprime le chemin) + chunk.source = chunk.source.replace( + /url\((['"]?)([^'")\s]*assets\/img\/[^'")\s]*\.(png|jpe?g|gif|webp|avif|svg))\1\)/gi, + (_, _q, p) => { + const filename = decodeURIComponent(p.split('/').pop()) + return `url("/assets/img/${filename}")` + } + ) } } }