使用静态适配器时如何在 sveltekit 上使用 get 参数?

How to use get parameter on sveltekit when use adapter-static?

我在构建时收到错误消息。

“无法在启用预呈现的页面上访问 url.searchParams”

如何加载和使用get参数?

svelte.config.js

import adapter from '@sveltejs/adapter-static';
import preprocess from 'svelte-preprocess';

const config = {
      preprocess: preprocess({
      }),
    kit: {
        adapter: adapter({
                  pages: 'build',
                  assets: 'build',
                  fallback: null,
                  precompress: false
            }),
            prerender: {
                  default: true
            },
            trailingSlash: 'always'
    }
};

export default config;

qna.svelte

...
import {page} from '$app/stores';
const id = $page.url.searchParams.get('id');
...

您不能同时使用搜索参数和预呈现网站。您的 searchParams 可能有无限变体,因此您必须预呈现无限数量的页面。

如果您想要动态网站,请不要预呈现该页面。您可以将个别页面标记为不预呈现

<script context="module">
    export const prerender = false;
</script>

请注意,现在您将需要一个 fallback 页面并且必须确保将这些页面重定向到 index.html 否则您将收到 404s