Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 反应路由器&x27;s哈希路由器不处理哈希更改_Reactjs_Webpack_React Router V4 - Fatal编程技术网

Reactjs 反应路由器&x27;s哈希路由器不处理哈希更改

Reactjs 反应路由器&x27;s哈希路由器不处理哈希更改,reactjs,webpack,react-router-v4,Reactjs,Webpack,React Router V4,我正在使用ReactRouter的类(我的服务器没有配置为,这是一个内部工具,所以我不关心搜索引擎等) 我只有一条路线: <Route path="/:datestring" component={ConnectedDatePage} /> 在我的开发版本中,这一切都非常有效。然后,我将应用程序打包(使用webpack)到一个页面中并发布它,在服务器上,单击链接更改散列,但页面上没有相应的更改 用新的散列重新加载页面会正确地呈现所有内容,但是再次更改散列不会产生任何效果。这里可

我正在使用ReactRouter的
类(我的服务器没有配置为
,这是一个内部工具,所以我不关心搜索引擎等)

我只有一条路线:

<Route path="/:datestring" component={ConnectedDatePage} />

在我的开发版本中,这一切都非常有效。然后,我将应用程序打包(使用webpack)到一个页面中并发布它,在服务器上,单击链接更改散列,但页面上没有相应的更改

用新的散列重新加载页面会正确地呈现所有内容,但是再次更改散列不会产生任何效果。这里可能发生了什么


更新:我怀疑这可能是因为在服务器上,它没有在根级别运行(例如,
http://example.com/app/#/20170203/
而不是
http://localhost/#/20170203/
)。我不知道如何配置路由器来处理这个问题。

我的问题是我没有在路由中指定
exact
选项:

<Route exact path="/" component={Home} />
<Route exact path="/:datestring" component={ConnectedDatePage} />


如果没有此选项,则始终呈现主页。非常基本但致命的错误D

您愿意分享吉特回购协议吗?这是一个有趣的问题,我想调查一下,如果我能运行这个应用程序会有所帮助。不幸的是,我不认为我能分享整个回购协议。是否有更多关于我可以共享的配置的信息会有所帮助?您运行的是哪台后端服务器?您可能正在本地运行webpack dev server,它会自动将所有路由更改重定向到
index.html
。你需要在应用部署到的服务器上进行相同的设置。它只是作为服务器上的静态页面。我不确定确切的配置,但原则上使用散列路由器可以避免服务器定制,任何散列路由仍将指向相关的
index.html
。(事实上,所有的路由都有效,只是
hashchange
事件没有启动路由器。不过,我检查了一下,它正在启动。)多年前的问题,但面临着同样的问题。