我的问题是有关react-router-dom
与部署到相对路径的结合(请参阅https://create-react-app.dev/docs/deployment#building-for-relative-paths)。在我的开发环境中,路由器可以正常工作,但是一旦我构建并部署了带有路由器中homepage
设置的标记的应用程序后,package.json
该路由器就似乎无法正常工作了。
首先,我认为它会工作。毕竟,这是通过响应为特定的URL进行构建的构建选项,并且我将假定具有相对路径的功能相同。但是,<Link to="">
部件和<Switch>
操作都没有尊重我的应用程序的相对路径。
第二,我还没有找到解决此问题的方法。有任何想法吗?
关于反应路由器和相对路径的其他问题集中在一个完全不同的主题上。所以我没有找到我问题的答案。部署在不同位置(子目录)的此React-router应用程序可能正在接近,并且可能是解决该问题的一种方式。
有关信息:
"react-dom": "^16.8.6",
"react-router-dom": "^5.0.1",
编辑和PS:
我可能只需要设置一个基名。如果基本名称正在更改,我至少要从的设置中推断出它package.json
,而不根据某些package.json
设置更改我的代码。
编辑2:
我可以basename={process.env.PUBLIC_URL}
用来将基本名称设置为正确的URL。但是,路线仍然不匹配。但是,这些链接看起来不错,因此<Link to="/xx">
实际上会导致链接{process.env.PUBLIC_URL}/xx
是所需的行为,但路由器<Switch>
不匹配它们。 实际上,这就是答案,您可以从头开始。
使用basename={process.env.PUBLIC_URL}
确实解决了我的问题。
对于遇到相同问题的任何人:请阅读我原始问题中的编辑内容。使用basename={process.env.PUBLIC_URL}
确实解决了我的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句