任何时候我用http://localhost:8080/login
之类的东西打电话给路由器,react-router编辑路径,并将其重新路由到http://localhost:8080/login#/
(无效路由),当我希望它重新路由到{{1}时(有效的路线)。我怎么能这样做?
我已经尝试添加
了http://localhost:8080/#/login
到我的webpack.config。我不确定如何找到这些信息。
答案 0 :(得分:1)
要解决您的问题,您只需使用BrowserRouter而不是当前在index.js文件中导入的HashRouter。
HashRouter使用URL的哈希部分(即window.location.hash)使您的UI与URL保持同步,而BrowserRouter使用HTML5历史API(pushState,replaceState和popstate事件)来保持您的UI与网址同步。
答案 1 :(得分:0)
当您在浏览器的URL栏中输入http://localhost:8080/login
时,按Enter后,浏览器会将您移至login
,然后哈希路由器添加他的斜杠,最后将其设为/login#/
。如果您使用Link
和history.push
,那么HashRouter将重定向就好了。使用HashRouter,您本身没有/login
。
看看@Marco答案,可能你会使用BrowserRouter 无论如何要摆脱那些讨厌的混乱。