diff --git a/packages/vite/src/node/server/middlewares/transform.ts b/packages/vite/src/node/server/middlewares/transform.ts index cf8347c9eebd2c..7dc7498ba85d68 100644 --- a/packages/vite/src/node/server/middlewares/transform.ts +++ b/packages/vite/src/node/server/middlewares/transform.ts @@ -213,6 +213,7 @@ export function transformMiddleware( '', ) if ( + !url.startsWith('/@id/\0') && deniedServingAccessForTransform( urlWithoutTrailingQuerySeparators, server, @@ -264,7 +265,10 @@ export function transformMiddleware( const result = await transformRequest(environment, url, { html: req.headers.accept?.includes('text/html'), allowId(id) { - return !deniedServingAccessForTransform(id, server, res, next) + return ( + id.startsWith('\0') || + !deniedServingAccessForTransform(id, server, res, next) + ) }, }) if (result) { diff --git a/playground/fs-serve/__tests__/fs-serve.spec.ts b/playground/fs-serve/__tests__/fs-serve.spec.ts index d88f3eb78d7e72..3c69a394a52df1 100644 --- a/playground/fs-serve/__tests__/fs-serve.spec.ts +++ b/playground/fs-serve/__tests__/fs-serve.spec.ts @@ -38,6 +38,10 @@ describe.runIf(isServe)('main', () => { expect(await page.textContent('.named')).toBe(testJSON.msg) }) + test('virtual svg module', async () => { + expect(await page.textContent('.virtual-svg')).toMatch(' { expect(await page.textContent('.safe-fetch')).toMatch('KEY=safe') expect(await page.textContent('.safe-fetch-status')).toBe('200') diff --git a/playground/fs-serve/root/src/index.html b/playground/fs-serve/root/src/index.html index 23be5e6b1bde17..35d3cbc2d6a5a9 100644 --- a/playground/fs-serve/root/src/index.html +++ b/playground/fs-serve/root/src/index.html @@ -61,11 +61,17 @@

Denied


 

 
+Virtual SVG module
+

+