我正在使用node.js + express.js + react.js构建应用程序,并且我使用webpack编译客户端代码。我遇到的问题是我的客户端代码是用webpack编译后运行我的应用程序,我无法刷新页面。
我的代码:
我的webpack将我的文件编译为/dist/index.html
,我的应用程序在端口3000上运行,所有客户端路由都以/admin
为前缀。
app.get('/', function(req, res) {
res.render('dist/index.html');
});
当我在浏览器中转到localhost:3000
并单击链接时,该应用程序正常工作。但是,如果我转到about
页面:
localhost:3000/admin/about
我刷新,我收到错误Cannot GET /admin/about
。
我相信原因是我的快递路由器只知道/
路由...所以如果我直接刷新到像/admin/about
这样的路线,快递不知道要渲染什么我的解决方案是包括一个"赶上所有"路线:
app.get('*', function(req, res) {
res.render('dist/index.html');
});
然而,这不断给我Error: Failed to lookup view "dist/index.html"
错误。
有人可以帮忙吗?
提前致谢!
答案 0 :(得分:0)
经过研究,我发现解决方案不是res.render
而是res.sendFile
:
res.sendFile(path.join(__dirname, '/dist/index.html'));