javascript - 没有处理 React 的斜杠
问题描述
我有一个问题,网址 /covid19/ 有效,但 /covid19 无效(末尾没有斜线)。
当您检查网络请求时,似乎请求是针对 / 而不是 /covid19/
/covid19(无斜线)
/covid19/(带斜线)
我不确定这是否与 React 的路由器有关,这是我的配置:
ReactDOM.render(
<React.StrictMode>
<Router history={history}>
<Route path={"/covid19"} component={dashboard}/>
<Route path={"/"} component={dashboard}/>
</Router>
</React.StrictMode>,
document.getElementById('root')
);
该网站是: https ://datcom-website.uc.r.appspot.com/covid19/
我的服务器在 App Engine 实例上运行。
解决方案
问题在于如何在 HTML 中包含脚本,而不是任何与 JS 或 React 相关的内容。
您的脚本来源是相对的 - ./path-to-script
; 这使得它依赖于 URL。因此,从页面domain.com/exampleA
到脚本的路径是domain.com/path-to-script
,但是一旦您在 URL 中添加另一个级别,甚至只是一个斜杠,相对路径就会改变。例如,domain.com/exampleA/
生成路径domain.com/exampleA/path-to-script
。
您应该改用绝对路径。在大多数情况下,只需.
在开头删除就足够了。以 a 开头的源路径/
意味着它位于域的根级别。因此,无论 URL 是什么,源/path-to-source
总是会产生。domain.com/path-to-script
因此,对于您的用例,您的脚本似乎需要更改为
<script src="/covid19/static/js/2.8cd0c9f0.chunk.js"></script>
<script src="/covid19/static/js/main.05f82414.chunk.js"></script>
推荐阅读
- c# - RichTextBox WPF 的滚动条
- c# - 游戏对象上的 Unity 3D 碰撞不起作用
- ios - IOS统一游戏随机崩溃
- java - 用终结器清理弱引用缓存?
- powerbi - 当记录数低于 5 时,是否有防止 PowerBI 视觉显示结果的方法?
- google-cloud-dataflow - 我可以让弹性模板作业在开始处理数据之前花费不到 10 分钟的时间吗?
- microsoft-graph-api - MS Graph API - 获取驱动器
- javascript - Nuxt 生成的页面在页面刷新时返回未定义的 VueX 响应
- javascript - JS 版本 bittrix 的 API 问题
- python - “if 2 < a < b: do someting”在 Python 中是什么意思?