如何防止静态适配器生成的 HTML 中出现多余的数据获取脚本(application/json)?

问题描述 投票:0回答:1

我正在使用 SvelteKit 构建一个静态网站,其中包含用于服务器渲染的静态适配器。我注意到在生成的 HTML 文件中,有一个脚本可以获取页面中已包含的相同数据。例如,如果我有一个列出博客文章的页面,并且我在服务器端加载函数中获取帖子数据,SvelteKit 仍然包含一个脚本来在渲染 HTML 时获取相同的数据。

在我的 +page.ts 文件中,我正在执行以下操作:

import type { Post } from '$lib/types';

export async function load({ fetch }) {
    const response = await fetch('../api/posts');
    const posts: Post[] = await response.json();
    return { posts };
}
export const prerender = true;

我对这个冗余脚本的用途感到困惑,以及对于所有数据都预渲染的静态站点是否有必要。有没有办法配置 SvelteKit 或静态适配器来防止此冗余数据获取脚本包含在 HTML 输出中?

<script type="application/json" data-sveltekit-fetched data-url="/api/posts">
    {"status:200, ... all the data ... 
</script>

任何有关如何解决此问题的见解或建议将不胜感激。预先感谢!

static svelte sveltekit static-site-generation
1个回答
0
投票

我怀疑这是客户端路由/渲染的一部分。
您可以尝试将其关闭:

// +page.ts / +layout.ts
export const csr = false;

文档

© www.soinside.com 2019 - 2024. All rights reserved.