部署Express并使用路由前缀进行响应

时间:2019-10-06 07:09:35

标签: javascript node.js reactjs express

我正在尝试使用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"));
  }
);

1 个答案:

答案 0 :(得分:0)

他,路由器定义顺序很有意义, 这是示例Order of router precedence in express.js 和文档https://expressjs.com/en/guide/routing.html

当您尝试访问/ dashboard / something时,由于/ dashboard 1st是按顺序排列的,因此您曾经访问过/ dashboard而不是/ dashboard / somethink,都是关于此处的顺序