我正在从这个React-Webpack样板库回购(https://github.com/wallacyyy/webpack-heroku/blob/master/server.js)开始开发我的项目。一切都按预期工作但现在,我想在我的React应用程序中实现路由,为此,我必须将以前的文件(server.js
)修改为以下内容:
而不是:
app.get('/', function (_, res) { res.sendFile(indexPath) })
我用:
app.get('*', function (_, res) { res.sendFile(indexPath) })
一旦我做了这个更改,一切都会中断,React应用程序不再渲染。我唯一得到的是浏览器中的错误:bundle.js:1 Uncaught SyntaxError: Unexpected token <
如果我尝试查看bundle.js
的内容,我会收到index.html
的内容。
知道为什么express的通配符路由会破坏React应用程序吗?
答案 0 :(得分:0)
根据this comment,webpack-hot-middleware
配置需要在*
处理程序之前,因此它可以匹配路径。在找到这些信息后,修复非常简单,我在GET处理程序之前移动了webpack-hot-middleware
的配置。