Svelte项目部署LAMP环境疑问:build目录无入口文件是否正确?
SvelteKit 静态部署无入口文件问题解决
你的操作存在配置遗漏,导致build目录未生成正确的入口文件,具体问题和修复方案如下:
必须添加预渲染配置
使用adapter-static时,必须在src/routes/+layout.js(或+layout.ts)中添加:export const prerender = true;这条配置会告诉SvelteKit预渲染所有路由为静态HTML文件,缺失它的话,适配器不会生成完整的静态页面结构。
检查实际输出路径
默认构建产物会输出到build目录,但部分版本或自定义配置下,文件可能生成在.svelte-kit/output目录,先确认这个路径下是否有生成文件。补全完整配置示例
正确的svelte.config.js应包含预处理器和必要的路径配置,示例如下:import adapter from "@sveltejs/adapter-static"; import { vitePreprocess } from "@sveltejs/kit/vite"; /** @type {import('@sveltejs/kit').Config} */ const config = { preprocess: vitePreprocess(), kit: { adapter: adapter({ fallback: '404.html' // LAMP环境下用于SPA路由回退 }), paths: { base: '' // 若部署在子目录,需填写对应路径,如'/my-site' } }, }; export default config;LAMP环境适配配置
部署到Apache时,需在站点根目录创建.htaccess文件,添加路由重写规则:RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /404.html [L]确保非静态文件的路由请求能回退到
404.html,由SvelteKit客户端路由处理。
内容的提问来源于stack exchange,提问作者TaylorR
相关产品推荐
相关产品推荐

