服务端渲染(SSR)是在服务端生成 HTML 的过程,这也是 SvelteKit 的默认行为。它对性能和弹性很重要,并且对搜索引擎优化(SEO)非常有益——虽然一些搜索引擎可以索引在浏览器中通过 JavaScript 渲染的内容,但这种情况发生的频率和可靠性较低。
话虽如此,有些组件无法在服务端渲染,可能是因为它们期望能够立即访问浏览器的全局变量,如 window
。如果可能的话,你应该修改这些组件使其能够在服务端渲染,但如果无法做到,你可以禁用 SSR:
src/routes/+page.server
export const ssr = false;
在根目录的
+layout.server.js
中将ssr
设置为false
实际上会将整个应用程序转变为单页应用(SPA)。
1
2
<h1>{window.innerWidth}x{window.innerHeight}</h1>