Compare commits

...

2 commits

Author SHA1 Message Date
isUnknown
09d05f53da Fix: fonts non dupliquées dans dist/, URLs CSS pointent vers assets/fonts/
All checks were successful
Deploy / Deploy to Production (push) Successful in 17s
Plugin Vite keepFontsInPlace : supprime les fonts que Vite copie dans dist/
et réécrit leurs URLs dans le CSS pour pointer vers /assets/fonts/.
Reverts base: '/assets/dist/' — inutile avec cette approche.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 17:45:18 +01:00
isUnknown
fca67beb6b Fix: URLs des fonts correctes dans le CSS buildé
Vite copiait les fonts dans assets/dist/ mais générait url(/NomFont.woff)
(chemin racine) au lieu de url(/assets/dist/NomFont.woff).
Correction : base = '/assets/dist/' en mode build, '/' en dev.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 17:41:41 +01:00

View file

@ -2,11 +2,39 @@ import { defineConfig } from 'vite'
import { svelte } from '@sveltejs/vite-plugin-svelte'
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/.
*/
function keepFontsInPlace() {
const fontRe = /\.(woff2?|ttf|otf)$/i
return {
name: 'keep-fonts-in-place',
generateBundle(_, bundle) {
for (const [key, chunk] of Object.entries(bundle)) {
if (fontRe.test(key)) {
delete bundle[key]
}
}
for (const chunk of Object.values(bundle)) {
if (chunk.type === 'asset' && chunk.fileName.endsWith('.css')) {
chunk.source = chunk.source.replace(
/url\((['"]?)([^'")\s]*\.(woff2?|ttf|otf))\1\)/gi,
(_, _q, p) => `url("/assets/fonts/${p.split('/').pop()}")`
)
}
}
}
}
}
export default defineConfig({
plugins: [
svelte({
configFile: './svelte.config.js'
})
}),
keepFontsInPlace(),
],
resolve: {
alias: {