Sveltekit build result works fine in cloud, fails with swa cli
Before filing this issue, please ensure you're using the latest CLI by running swa --version and comparing to the latest version on npm.
demo % npx swa --version
2.0.4
Are you accessing the CLI from the default port :4280 ?
- [ ] No, I am using a different port number (
--port) and accessing the CLI from that port - [X] Yes, I am accessing the CLI from port
:4280
Make sure you are accessing the URL printed in the console when running
swa start!
- [X] ℹ️ NOTE: Make sure to enable debug logs when running any
swacommands using--verbose=silly
Describe the bug The build result of the SvelteKit app with svelte-adapter-azure-swa deployed to the azure swa cloud works fine.
https://polite-desert-00b80111e.2.azurestaticapps.net/
Tests (automated and manual) fail with swa cli.
To Reproduce This branch is minimally different to main to start swa cli for the demo app
git clone -b feat/update [email protected]:ktarmyshov/svelte-adapter-azure-swa.git
cd svelte-adapter-azure-swa
npm ci
npm pack
cd demo
npm ci
npx playwright install
npm run test:swa
Manual:
- run
npm run swa - Navigate to http://localhost:4280/ - works
- Click to "about" - works
- Click to "sverdle" - works
- Navigate to http://localhost:4280/about or click refresh in "about" page - 404
- Navigate to http://localhost:4280/sverdle or click refresh in "sverdle" page - too many redirects
Expected behavior Should work same as azure cloud - should not fail.
Screenshots N/A
Desktop (please complete the following information):
- OS: Mac OS
- latest 15.3.1
Additional context Latest deploy job
https://github.com/geoffrich/svelte-adapter-azure-swa/actions/runs/13660215225/job/38189418604
Der dev team,
more context/research:
It seems there is an issue with SWA serving static/prerenderd content (adding trailing slashes or other). Here is the repro code without prerendered content. Although one test fails, in this version there is no issue with 404 or too many redirects.
git clone -b feat/update-noprerender [email protected]:ktarmyshov/svelte-adapter-azure-swa.git
cd svelte-adapter-azure-swa
npm ci
npm pack
cd demo
npm ci
npx playwright install
npm run test:swa
https://github.com/geoffrich/svelte-adapter-azure-swa/issues/197#issuecomment-2712907983
Found the issue - seems like SWA always adds the leading slash - so if you access
/sverdlethe local SWA runtime will redirect you to/sverdle/but then SvelteKit will redirect you back to/sverdleand so on.The only way to fix this is to set
trailingSlash = 'always'in SvelteKit.
+layout.server.ts:export const trailingSlash = 'always';