构建和部署
单页应用程序
在 GitHub 上编辑此页面你可以通过在根布局中禁用 SSR,将使用任何适配器的任何 SvelteKit 应用程序变成一个完全客户端渲染的单页应用程序 (SPA)
src/routes/+layout.js
ts
export constssr = false;
src/routes/+layout.ts
ts
export constssr = 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.js
ts
importCannot find module '@sveltejs/adapter-static' or its corresponding type declarations.2307Cannot find module '@sveltejs/adapter-static' or its corresponding type declarations.adapter from'@sveltejs/adapter-static' ;export default {kit : {adapter :adapter ({fallback : '200.html' // may differ from host to host})}};
fallback
页面是 SvelteKit 从您的页面模板(例如 app.html
)创建的 HTML 页面,它会加载您的应用并导航到正确的路由。例如,静态 Web 主机 Surge 允许您添加一个 200.html
文件,该文件将处理任何不对应于静态资产或预渲染页面的请求。
在某些主机上,它可能是 index.html
或完全是其他内容——请查阅您的平台文档。
请注意,无论
paths.relative
的值如何,fallback 页面始终包含绝对资产路径(即以/
开头,而不是.
),因为它用于响应任意路径的请求。
Apache永久链接
要在 Apache 上运行 SPA,您应该添加一个 static/.htaccess
文件以将请求路由到 fallback 页面
<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.js
ts
export constprerender = true;export constssr = true;
src/routes/my-prerendered-page/+page.ts
ts
export constprerender = true;export constssr = true;
上一个 静态站点生成
下一个 Cloudflare Pages