Netlify部署Svelte应用直接访问子路由出现404问题求助
解决Netlify部署Svelte SPA后直接访问子路由404的问题
这是单页应用(SPA)的典型路由问题:Svelte的前端路由在浏览器端处理内部跳转,但Netlify收到mypage.com/help这类直接请求时,会尝试在服务器上查找对应路径的静态文件——而SPA只有一个入口文件(通常是index.html),因此返回404。内部导航正常是因为跳转由前端路由接管,没有向服务器发起新请求。
解决方法
方法1:添加_redirects文件
在你的public文件夹下创建_redirects文件,写入以下规则:
/* /index.html 200
该规则会将所有请求重定向到index.html,交由前端路由处理。
方法2:使用netlify.toml配置
在项目根目录创建netlify.toml文件(若不存在),添加以下内容:
[[redirects]] from = "/*" to = "/index.html" status = 200
效果和_redirects一致,适合需要复杂配置的场景。
注意事项
- 修改完成后,重新将
public文件夹拖拽到Netlify完成部署 - 本地运行正常说明你的Svelte路由配置本身无问题,只需调整Netlify的服务器重写规则即可
内容的提问来源于stack exchange,提问作者breakshooter
相关产品推荐
相关产品推荐

