如何解决SSR 在 SvelteKit 中解释
我最近开始通过 SvelteKit 与 Svelte 合作,但我对这个框架有一些疑问,但我无法在源代码/文档中找到任何直接的答案:
- SvelteKit 具有 SSR,并且在文档中说:
所有服务器端代码(包括端点)都可以访问 fetch,以防您需要从外部 API 请求数据。
- 除了端点之外,服务器端呈现的代码是什么?它是如何决定这一点的?来自 svelte 页面的脚本中的所有代码都在客户端上运行还是其中一些在服务器上运行?
- 为了在本地使用 SSR,您需要一个适配器,还是 svelte 自己启动服务器?
- SSR 如何在 生产环境(例如 Netlify)中工作。 netlify 适配器是否用于 SSR(在 netlify 函数中运行 端点)?如果没有提供 netlify 适配器,端点将如何/在哪里运行?
- 如果我想在 sveltekit 项目中使用自定义 netlify 函数,需要什么配置(除了 netlify.toml 和 netlify 适配器)从函数目录中命令让netlify识别函数?
- SSR 和预渲染之间的区别是什么? SSR仅用于端点和其他js代码,预渲染用于生成Html发送给客户端然后将被水合,连同编译好的js代码,也发送到浏览器?
谢谢!
解决方法
默认情况下,当您第一次访问网站时,页面也会在服务器端呈现。当您导航到后续页面时,它们将在客户端呈现。
适配器仅用于生产。如果您为本地开发运行 npm run dev
,您仍然会获得 SSR。在生产中,SSR 的具体运行方式取决于您选择的适配器。生产需要适配器。 adapter-node
在 Node 服务器上运行 SSR,adapter-netlify
在 Netlify 函数中运行 SSR,等等。
有关自定义 Netlify 函数的讨论,请参见此处:https://github.com/sveltejs/kit/issues/1249
SSR 也用于页面,但预渲染意味着渲染发生在构建时而不是访问者访问页面时。有关详细信息,请参阅此建议文档:https://github.com/sveltejs/kit/pull/1525
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。