Single-page apps
您可以使用任何适配器将任何 SvelteKit 应用转换为完全客户端渲染的单页应用程序(SPA),方法是在根布局中禁用 SSR:
src/routes/+layout
export const const ssr: falsessr = false;[注意] 在大多数情况下,这不被推荐:它损害 SEO,倾向于减慢感知性能,并且如果 JavaScript 失败或被禁用(这种情况比您可能想象的要常见),会使您的应用对用户不可访问(更常见于您可能想象的情况)。
如果您没有任何服务器端逻辑(即+page.server.js、+layout.server.js或+server.js文件),您可以使用adapter-static通过添加一个后备页面来创建您的 SPA。
使用
安装 npm i -D @sveltejs/adapter-static 后,将适配器添加到您的svelte.config.js中,并使用以下选项:
svelte.config
import import adapteradapter from '@sveltejs/adapter-static';
export default {
kit: {
adapter: any;
}
kit: {
adapter: anyadapter: import adapteradapter({
fallback: stringfallback: '200.html' // may differ from host to host
})
}
};The fallback 页面是由 SvelteKit 从您的页面模板(例如 app.html)创建的 HTML 页面,用于加载您的应用程序并导航到正确的路由。例如 Surge,一个静态网站托管服务,允许您添加一个 200.html 文件来处理与静态资源或预渲染页面不对应的任何请求。
在某些主机上可能是 index.html 或其他完全不同的内容——请查阅您的平台文档。
[注意] 注意,回退页面始终包含绝对资产路径(即以
/开头,而不是.),无论paths.relative的值如何,因为它用于响应对任意路径的请求。
Apache
要运行 SPA 在Apache上,您应该添加一个static/.htaccess文件以将请求路由到回退页面:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^200\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /200.html [L]
</IfModule>预渲染单个页面
如果您想预渲染某些页面,可以为您的应用中的这些部分重新启用ssr和prerender:
src/routes/my-prerendered-page/+page
export const const prerender: trueprerender = true;
export const const ssr: truessr = true;Edit this page on GitHub llms.txt
previous next