我正在尝试使用Express服务一个React应用(使用路由器)。可以通过/dashboard
访问react应用。
在应该显示登录页面的/dashboard
路由上,一切正常。但是,如果我尝试访问其他路由,则示例/dashboard/foo
不会显示任何内容。
事实证明,当HTML页面请求.js
文件时,服务器将返回index.html
文件而不是.js
文件。
我正在index.js
文件中使用以下代码:
app.use(
['/dashboard', '/dashboard/*'],
express.static(path.join(__dirname, 'dashboard')),
);
还尝试了以下代码:
app.use(
'/dashboard',
express.static(path.join(__dirname, 'dashboard')),
);
app.get(
'/dashboard/*',
(req, res) => {
res.sendFile(__dirname + "/dashboard/index.html"));
}
);
答案 0 :(得分:0)
他,路由器定义顺序很有意义, 这是示例Order of router precedence in express.js 和文档https://expressjs.com/en/guide/routing.html
当您尝试访问/ dashboard / something时,由于/ dashboard 1st是按顺序排列的,因此您曾经访问过/ dashboard而不是/ dashboard / somethink,都是关于此处的顺序