Firebase踩坑
由于我的单页面应用使用了react-router-dom做页面路由: 通过路由foo,传递一个id参数,渲染组件”Component“。 在访问domain.com/404时,可以正常渲染not found文本。 但在访问domain.com/foo/123时,浏览器从错误的路径请求了静态资源。静态资源会从domain.com/foo/js/xxx.js加载。然而真正的资源存储在domain.com/js/xxx.js。 尝试了常见的解决方案(配置firebase的rewrite规则),但问题依然存在。 Gemini还给出这个方案: 发现我经过webpack打包的静态html文件,确实是以相对路径引入资源。 因此在生产环境的webpack设置中修改文件名即可。 P.S. 使用 firebase emulators:start 可以在本地模拟hosting服务,以便调试。