我正在使用ReactRouter的<HashRouter>
类(我的服务器没有为<BrowserRouter>
配置,这是一个内部工具,所以我不关心搜索引擎等。)
我只有一条路线:
<Route path="/:datestring" component={ConnectedDatePage} />
在我的开发版本中,这一切都很完美。然后我将应用程序(使用webpack)打包到一个页面并发布它,在服务器上,单击链接会更改哈希值 - 但页面上没有相应的更改。
使用新哈希重新加载页面会正确呈现所有内容,但是再次更改哈希不会做任何事情。可能会发生什么?
更新:我怀疑这可能是因为,在服务器上,它没有在根级别运行(例如,http://example.com/app/#/20170203/
而不是http://localhost/#/20170203/
)。不过,我不知道如何配置路由器来处理这个问题。
答案 0 :(得分:0)
我的问题是我没有在路由中指定exact
选项:
<Route exact path="/" component={Home} />
<Route exact path="/:datestring" component={ConnectedDatePage} />
如果没有此选项,则始终显示主页。非常基本但致命的错误。 :D