kit
kit copied to clipboard
fix: correctly handle pathnames found in the `_redirects` file
closes #9138
We need to add the pathnames found in the Cloudflare _redirects file to the exclude array so that they are handled by Cloudflare Pages rather than the Cloudflare Pages worker. This PR also adds the <redirects> directive so that it can be included manually in the exclude array in _routes.json.
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
- [x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
- [x] This message body should clearly illustrate what problems it solves.
- [x] Ideally, include a test that fails without this PR but passes with it.
Tests
- [x] Run the tests with
pnpm testand lint the project withpnpm lintandpnpm check
Changesets
- [x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running
pnpm changesetand following the prompts. Changesets that add features should beminorand those that fix bugs should bepatch. Please prefix changeset messages withfeat:,fix:, orchore:.
Edits
- [x] Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed.
🦋 Changeset detected
Latest commit: 72eda65a84a384540b03a37737dedeb7b33bbc3f
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 1 package
| Name | Type |
|---|---|
| @sveltejs/adapter-cloudflare | 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
I see this method is building a RoutesJSONSpec. Is that a structure that's expected by Cloudflare? If so, could you add a comment in the index.d.ts that points to the relevant Cloudflare docs?
preview: https://svelte-dev-git-preview-kit-12821-svelte.vercel.app/
this is an automated message
Thanks, that's a good suggestion. I've added a link to the _routes.json documentation.
77dc208 (#12821)
Preview: https://svelte-dev-git-preview-kit-12821-svelte.vercel.app/
Is this still all correct now that there was a breaking change about the other things that no longer are in the
staticdirectory?
Thanks for the reminder. I did a bit of refactoring and added a test for the _routes.json file generation. This should now correctly exclude redirects found during prerender (which were already being added to the _redirects file but did nothing because they weren't excluded).
I've also added a check in case someone added their _routes.json to the /static folder. It would have been overwritten anyway by our own _routes.json generated file but this makes it clearer that they should configure it through the adapter options.
The _route.json file generation also uses a set now so that we don't end up with any duplicate excluded routes. I've also added tests for the utility method.