MERN应用-刷新或重新加载时某些URL不起作用(使用BrowserRouter,而不使用HashRouter)

时间:2019-04-29 16:27:21

标签: reactjs react-router react-router-dom

我创建了一个MERN应用并将其部署到Heroku。

我的问题是,当我尝试重新加载/刷新时,某些页面没有显示。相反,我可以看到我的json文件/ API响应... 当我的应用程序部署到Heroku而不是本地时,才遇到这个问题。

很不幸,我不知道该怎么解释。

您可以在此处看到网站的当前测试版本部署到Heroku并对其进行测试,以便更好地查看问题(当然,还有其他一些问题):

https://calm-earth-15269.herokuapp.com/

(服务器在30分钟后重新进入睡眠状态,因此有时您需要花一点时间来加载它)

页面没有问题:

https://calm-earth-15269.herokuapp.com/how-to-use-our-music

https://calm-earth-15269.herokuapp.com/contact ...

仅发生在这样的页面上: /royalty-free-music/:category/page-:page

例如:

https://calm-earth-15269.herokuapp.com/royalty-free-music/all/page-1

https://calm-earth-15269.herokuapp.com/royalty-free-music/electronic/page-2


我尝试使用<HashRouter>而不是BrowserRouter来解决问题!

此后,我可以刷新/重新加载,但是我在URL中输入了#,但我并不是真的想要...:/


这是我当前用于此应用程序的git仓库: https://github.com/Karaza/joystock

在此先感谢您的帮助(:

1 个答案:

答案 0 :(得分:0)

我只需安装connect-history-api-fallback并在我的server.js文件中添加以下代码即可解决问题:

const history = require('connect-history-api-fallback');

app.use(history());