Skip to content

Commit 49d294d

Browse files
authored
fix(dev): correct responce for html qurey (#1526)
fix #1524
1 parent 2bee4be commit 49d294d

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

packages/playground/html/__tests__/html.spec.ts

+9
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,12 @@ describe('nested', () => {
8585

8686
testPage(true)
8787
})
88+
89+
describe('nested w/ query', () => {
90+
beforeAll(async () => {
91+
// viteTestUrl is globally injected in scripts/jestPerTestSetup.ts
92+
await page.goto(viteTestUrl + '/nested/index.html?v=1')
93+
})
94+
95+
testPage(true)
96+
})

packages/vite/src/node/server/middlewares/indexHtml.ts

+7-8
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
import { ViteDevServer } from '../..'
1313
import { send } from '../send'
1414
import { CLIENT_PUBLIC_PATH, FS_PREFIX } from '../../constants'
15+
import { cleanUrl } from '../../utils'
1516

1617
const devHtmlHook: IndexHtmlTransformHook = (html, { path }) => {
1718
let index = -1
@@ -51,24 +52,22 @@ export function indexHtmlMiddleware(
5152
const [preHooks, postHooks] = resolveHtmlTransforms(plugins)
5253

5354
return async (req, res, next) => {
55+
const url = req.url && cleanUrl(req.url)
5456
// spa-fallback always redirects to /index.html
55-
if (
56-
req.url?.endsWith('.html') &&
57-
req.headers['sec-fetch-dest'] !== 'script'
58-
) {
57+
if (url?.endsWith('.html') && req.headers['sec-fetch-dest'] !== 'script') {
5958
let filename
60-
if (req.url!.startsWith(FS_PREFIX)) {
61-
filename = req.url.slice(FS_PREFIX.length)
59+
if (url.startsWith(FS_PREFIX)) {
60+
filename = url.slice(FS_PREFIX.length)
6261
} else {
63-
filename = path.join(server.config.root, req.url!.slice(1))
62+
filename = path.join(server.config.root, url.slice(1))
6463
}
6564
if (fs.existsSync(filename)) {
6665
try {
6766
let html = fs.readFileSync(filename, 'utf-8')
6867
// apply transforms
6968
html = await applyHtmlTransforms(
7069
html,
71-
req.url!,
70+
url,
7271
filename,
7372
[...preHooks, devHtmlHook, ...postHooks],
7473
server

0 commit comments

Comments
 (0)