Solid.JS部署Railway后刷新非根路径出现404问题求助
解决Solid.JS部署Railway后刷新非根路径404问题
问题核心
Solid.JS属于单页应用(SPA),前端路由逻辑在浏览器端处理。刷新或直接访问非根路径时,Railway上的http-server会尝试寻找对应物理文件,找不到就返回404。本地用-P代理参数能把请求转去根路径,但Railway的HTTPS环境下协议不匹配,且平台会自动管理证书,不需要手动配置。
最优解决方案:换用serve静态服务器
serve是专门适配SPA的静态文件服务器,默认会把所有非文件请求转发到index.html,直接解决404问题:
- 安装依赖:
npm install --save-dev serve
- 修改
package.json的start命令:
"start": "serve -s dist"
- 重新部署到Railway即可,刷新或直接访问非根路径都能正常跳转。
若坚持使用http-server
Railway会自动处理SSL证书,服务器内部仍用HTTP通信,无需手动指定证书路径。只需调整代理参数指向内部HTTP地址:
修改start命令为:
"start": "npx http-server ./dist -p $PORT -P http://localhost:$PORT?"
$PORT是Railway自动分配的环境变量,确保端口与平台配置一致。
内容的提问来源于stack exchange,提问作者BigBellyBigDreams
相关产品推荐
相关产品推荐

