Skip to content

fix: answer HEAD and */* page requests under vite dev - #380

Open
dex157 wants to merge 1 commit into
solidjs:nextfrom
dex157:fix/dev-head-accept-page-requests
Open

dex157 wants to merge 1 commit into
solidjs:nextfrom
dex157:fix/dev-head-accept-page-requests

Conversation

@dex157

@dex157 dex157 commented Sep 27, 2026

Copy link
Copy Markdown

Problem

Under vite dev, a page answers 404 unless the request is a GET with Accept: text/html. HEAD requests and GETs with Accept: */* (curl, fetch()) or no Accept all get Vite's 404. Production answers 200 to all three.

Fix

The dev middleware now counts a page request the way Vite's htmlFallbackMiddleware does: GET or HEAD, except /favicon.ico, with Accept missing, empty, text/html or */*. Non-GET requests are unchanged.

Verification

runHttpChecks gets three checks: HEAD, */* and no Accept, each on /. Before the fix they fail in dev and mw-dev with 404. After it they pass in all modes. The endpoint-mode check "default endpoint no longer handled" now sends the real RPC (a POST) instead of a GET, because a GET renders the page now, as in production. Full pnpm test in examples/start-ssr passes: run.mjs 644/644, plus the other scripts.

The dev middleware counted only a GET with Accept: text/html as a page
request. HEAD, and GETs with */* or no Accept, got Vite's 404 where production
renders the page. Use the same test as Vite's HTML fallback.
@changeset-bot

changeset-bot Bot commented Sep 27, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 884571b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@solidjs/vite-plugin Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant