kit icon indicating copy to clipboard operation
kit copied to clipboard

fix: correctly handle pathnames found in the `_redirects` file

Open teemingc opened this issue 1 year ago • 6 comments

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 test and lint the project with pnpm lint and pnpm 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 changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

Edits

  • [x] Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed.

teemingc avatar Oct 16 '24 12:10 teemingc

🦋 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

changeset-bot[bot] avatar Oct 16 '24 12:10 changeset-bot[bot]

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?

benmccann avatar Nov 05 '24 02:11 benmccann

preview: https://svelte-dev-git-preview-kit-12821-svelte.vercel.app/

this is an automated message

Rich-Harris avatar Nov 11 '24 07:11 Rich-Harris

Thanks, that's a good suggestion. I've added a link to the _routes.json documentation. 77dc208 (#12821)

teemingc avatar Nov 11 '24 07:11 teemingc

Preview: https://svelte-dev-git-preview-kit-12821-svelte.vercel.app/

svelte-docs-bot[bot] avatar Mar 20 '25 08:03 svelte-docs-bot[bot]

Is this still all correct now that there was a breaking change about the other things that no longer are in the static directory?

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.

teemingc avatar Mar 21 '25 06:03 teemingc