如何配置 express 以在生产环境中为 angular 应用程序提供服务?

How to configure express to serve angular app in production?

客户端路由机制存在一个常见问题:一旦部署,所谓的 "deep links" 就像 host/deep/deeper/deepest/link/1 吐出 404 Not Found rahter 然后传播到 index.html并正确地解决了某个组件。

如何配置?

我试过:

app.use(express.static(root)); // root folder of the project
app.use((req, res) => res.sendFile(path.join(__dirname, root,'index.html')));

...但它仅适用于基础 url;其他的都被拒绝了。

app.use(express.static(root)); // root folder of the project

这意味着没有安装路径的中间件功能。对路由器的每个请求都会执行此代码

尝试像这样使用

  app.use('/', express.static(path.join(__dirname, '../root')));

  app.get('/*', function(req, res) {
    res.sendFile(path.join(__dirname, '../root/index.html'));
  });

完整的例子在这里 https://github.com/mdshohelrana/mean-stack/blob/master/server/app.ts