我创建了一个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
在此先感谢您的帮助(:
答案 0 :(得分:0)
我只需安装connect-history-api-fallback
并在我的server.js
文件中添加以下代码即可解决问题:
const history = require('connect-history-api-fallback');
app.use(history());