如何正确部署SolidJS应用到Netlify?解决非根路由崩溃问题
SolidJS部署Netlify路由问题解决方案
首先明确:用_redirects文件依然是解决这个问题的有效方式,SolidJS没有专属的特殊方案,核心是让Netlify把所有路由请求都转发到index.html,交由SolidJS的客户端路由接管。
下面分两种常见项目结构说明文件放置位置:
1. 基于SolidStart的项目
- 直接在项目根目录新建
public文件夹,把_redirects文件放进去。SolidStart构建时会自动将public目录下的文件打包到最终输出目录(默认是dist)。 - 或者不用
_redirects,直接在项目根目录创建netlify.toml文件,写入重定向规则,更便于版本控制:[[redirects]] from = "/*" to = "/index.html" status = 200
2. 基于Vite的纯SolidJS项目(非SolidStart)
- 在项目根目录新建
public文件夹,放入_redirects文件。Vite构建时会自动把public里的所有文件复制到dist目录的根路径下,Netlify就能识别到这个规则文件。 - 同样可以用上面的
netlify.toml配置替代_redirects文件。
_redirects文件的统一内容:
/* /index.html 200
你之前放在client/dist没生效,是因为Netlify读取重定向规则时,需要_redirects文件位于发布目录的根路径(也就是你在Netlify后台配置的"发布目录",通常是dist),而非子文件夹内。只要确保构建后_redirects在dist根目录下,就能正常生效。
内容的提问来源于stack exchange,提问作者Darien Miller
相关产品推荐
相关产品推荐

