建置和部署
單頁應用程式
在 GitHub 上編輯此頁面你可以使用任何轉接器,將任何 SvelteKit 應用程式變成一個完全由用戶端呈現的單頁應用程式 (SPA),方法是在根佈局中停用 SSR
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 頁面,它會載入你的應用程式並導航到正確的路由。例如 Surge,一個靜態網頁主機,讓你新增一個 200.html
檔案,它會處理任何與靜態資源或預先呈現的頁面不對應的請求。
在某些主機上,它可能是 index.html
或其他東西 — 請參閱你的平台文件。
請注意,備用頁面將始終包含絕對資源路徑(即以
/
開頭,而不是.
),無論paths.relative
的值為何,因為它用於回應任意路徑的請求。
Apache永久連結
要在 Apache 上執行 SPA,你應該新增一個 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.js
ts
export constprerender = true;export constssr = true;
src/routes/my-prerendered-page/+page.ts
ts
export constprerender = true;export constssr = true;
上一個 靜態網站產生
下一個 Cloudflare Pages