SvelteKit中同时禁用ssr与csr的页面渲染疑问
关于SvelteKit同时禁用
ssr和csr的误解纠正 你的理解存在偏差,同时禁用ssr和csr确实会得到空白页,官方注释里的“nothing will be rendered”就是指浏览器中看不到任何页面内容,具体原因如下:
- 你对
ssr的理解是正确的:它控制服务端是否生成页面的HTML内容并发送给浏览器。当ssr: false时,服务端不会返回任何页面HTML代码。 - 但你对
csr的理解有误:csr不仅决定页面是否具备交互性,还控制浏览器端是否会执行页面渲染逻辑。当csr: false时,SvelteKit不会在客户端注入任何用于渲染页面的代码——哪怕是静态内容的渲染逻辑也没有。
当两者同时设为false时:
- 服务端不提供页面HTML,客户端也不会自行生成内容,浏览器拿到的是空响应,自然显示空白页。
如果想要得到无交互的静态页面,正确的做法是开启ssr: true、关闭csr: false:服务端会生成完整的静态HTML发送给浏览器,客户端没有交互JS,页面有内容但无动态交互,这才是你预期的“静态页面”。
// If both
ssrandcsrarefalse, nothing will be rendered!
这段注释的核心意思就是:既没有服务端提供的页面内容,客户端也不会主动渲染内容,最终浏览器里什么都不会显示。
内容的提问来源于stack exchange,提问作者Yan
相关产品推荐
相关产品推荐

