11

我最近开始通过 SvelteKit 使用 Svelte,我对这个框架有一些问题,我无法在源代码/文档中找到任何直接答案:

  1. SvelteKit 具有SSR,在文档中它说:

如果您需要从外部 API 请求数据,所有服务器端代码(包括端点)都可以访问 fetch。

  • 除了端点之外,服务器端呈现了哪些代码以及它如何决定这一点?来自苗条页面的脚本中的所有代码都在客户端上运行,还是其中一些在服务器上运行?
  • 为了在本地使用 SSR,您需要一个适配器,还是 svelte 自己启动服务器?
  • 例如, SSR如何在Netlify生产环境中工作。netlify 适配器是否用于 SSR(在netlify 函数中运行端点)?如果未提供 netlify 适配器,端点将如何/在哪里运行?
  1. 如果我想在sveltekit 项目中使用自定义 netlify 函数,需要哪些配置(除了 netlify.toml 和 netlify 适配器)才能让 netlify从函数目录中识别函数?
  2. SSR 和预渲染之间有什么区别SSR仅用于端点和其他 js 代码,prerendering用于生成Html以将其发送到客户端,然后将其与已编译的 js 代码一起水合,也发送到浏览器?

谢谢!

4

1 回答 1

11

默认情况下,当您第一次访问站点时,页面也会在服务器端呈现。当您导航到后续页面时,它们将在客户端呈现。

适配器仅用于生产。如果您npm run dev参加本地开发,您仍然可以获得 SSR。在生产中,SSR 的运行方式取决于您选择的适配器。生产需要适配器。adapter-node在 Node 服务器上adapter-netlify运行 SSR,在 Netlify 函数中运行 SSR,等等。

有关自定义 Netlify 函数的讨论,请参见此处:https ://github.com/sveltejs/kit/issues/1249

SSR 也用于页面,但预渲染意味着渲染发生在构建时,而不是在访问者访问页面时。有关更多信息,请参阅此建议文档:https ://github.com/sveltejs/kit/pull/1525

于 2021-06-28T15:05:39.207 回答