@@ -2,7 +2,7 @@ import fsp from 'node:fs/promises'
22import { writeFileSync } from 'node:fs'
33import { addDevServerHandler , addVitePlugin , useNuxt } from '@nuxt/kit'
44import type { H3Event } from 'h3'
5- import { eventHandler , createError } from 'h3'
5+ import { eventHandler , createError , setResponseHeader } from 'h3'
66import { $fetch } from 'ofetch'
77import { colors } from 'consola/utils'
88import { 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