Skip to content

Commit 0ec437e

Browse files
committed
fix: prevent font flashes in development
resolves #181
1 parent 3d634b0 commit 0ec437e

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/assets.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import fsp from 'node:fs/promises'
22
import { writeFileSync } from 'node:fs'
33
import { addDevServerHandler, addVitePlugin, useNuxt } from '@nuxt/kit'
44
import type { H3Event } from 'h3'
5-
import { eventHandler, createError } from 'h3'
5+
import { eventHandler, createError, setResponseHeader } from 'h3'
66
import { $fetch } from 'ofetch'
77
import { colors } from 'consola/utils'
88
import { defu } from 'defu'
@@ -28,7 +28,7 @@ export async function setupPublicAssetStrategy(options: ModuleOptions['assets']
2828
nuxt.hook('modules:done', () => nuxt.callHook('fonts:public-asset-context', context))
2929

3030
// Register font proxy URL for development
31-
async function devEventHandler(event: { path: string }) {
31+
async function devEventHandler(event: H3Event) {
3232
const filename = event.path.slice(1)
3333
const url = context.renderedFontURLs.get(event.path.slice(1))
3434
if (!url) {
@@ -41,6 +41,8 @@ export async function setupPublicAssetStrategy(options: ModuleOptions['assets']
4141
res = await $fetch(url, { responseType: 'arrayBuffer' }).then(b => Buffer.from(b))
4242
await storage.setItemRaw(key, res)
4343
}
44+
// Set immutable cache headers to prevent font flashes during development
45+
setResponseHeader(event, 'Cache-Control', 'public, max-age=31536000, immutable')
4446
return res
4547
}
4648

0 commit comments

Comments
 (0)