Svelte+Vite项目用page.js路由部署Netlify后404问题求助
解决Svelte+page.js路由在Netlify部署后404的问题
问题核心是前端SPA路由与Netlify静态文件服务的默认行为冲突:
- 本地开发时,Vite开发服务器会把所有路由请求转发到
index.html,交由前端路由处理; - 部署到Netlify后,服务器收到
/county/Colusa这类请求时,会直接查找对应路径的静态文件,找不到就返回404,不会交给前端路由处理。
解决步骤:
方法1:添加_redirects配置文件
在项目根目录创建名为_redirects的无后缀文件,写入以下内容:
/* /index.html 200
该规则会让Netlify把所有路径的请求都转发到index.html,由你的page.js前端路由处理。
方法2:使用netlify.toml配置(支持复杂规则)
若需更灵活的路由配置,可在项目根目录创建netlify.toml文件,添加重写规则:
[[redirects]] from = "/*" to = "/index.html" status = 200
额外检查:Vite的base配置
如果站点部署在Netlify的子路径下(非根域名),需在vite.config.js/ts中设置base参数:
import { defineConfig } from 'vite'; import { svelte } from '@sveltejs/vite-plugin-svelte'; export default defineConfig({ plugins: [svelte()], base: '/your-subpath/' // 替换为实际子路径 });
完成配置后,重新执行npm run build再部署到Netlify,即可解决直接访问路由页面或下拉菜单跳转的404问题。
内容的提问来源于stack exchange,提问作者sprucegoose
相关产品推荐
相关产品推荐

