如何为Remix SPA应用配置Base URL以部署到任意上下文路径?
Remix SPA 配置Base URL解决路由404问题
只给Vite配置base还不够,得同时告诉Remix应用当前的上下文路径,不然路由匹配会出错。按下面步骤调整:
更新vite.config.ts,添加Remix的basename配置
在remix插件的配置里加上basename: "/foo",让Remix知道应用运行在/foo这个路径下,路由系统会自动把所有路由和这个前缀结合,就不会出现找不到路由的情况了。修改后的代码:export default defineConfig({ base: "/foo/", plugins: [ remix({ ssr: false, basename: "/foo", // 新增这一行 future: { v3_fetcherPersist: true, v3_relativeSplatPath: true, v3_throwAbortReason: true, }, }), tsconfigPaths(), ], });重启开发服务器验证
改完之后重启npx remix vite:dev,访问http://localhost:5173/foo/,就能正常加载root.tsx对应的页面了。生产部署注意点
如果要部署到http://localhost:8080/foo这类路径,记得:- 服务器要把
/foo路径下的请求转发到Remix应用的入口 - Vite构建的
base和Remix的basename要保持一致,比如都设为"/foo"
- 服务器要把
内容的提问来源于stack exchange,提问作者Oleksii Pylypchuk
相关产品推荐
相关产品推荐

