Angular 需要部署应用服务器吗?

Angular deploying application server needed?

我想到一个关于 Angular 项目的问题,但我找不到令人满意的答案。当我用谷歌搜索时,我只想到了如何部署应用程序,而不是回答我的具体问题的答案。

通常在开发 angular 应用程序时,我们可以 运行 ng serve 以获得开发服务器。然后,当我们访问 dev 服务器时,我们将获得 SPA 所需的以下文件。

开发服务器为我们唯一的静态 HTML 资产提供 index.html 文件和必要的已编译 angular 代码包,我们的应用程序 运行s.

当我们部署一个 Angular 应用程序时,Angular 应用程序是否仍然需要一个服务器来为该应用程序提供服务?或者我们可以只从后端提供这组文件吗?

您需要使用 $ ng build 命令生成您的应用程序文件。构建工件将存储在 dist/ 目录中。然后你可以使用像 Surge 这样的服务作为静态网络发布或其他网络服务器。
另一方面,如果您的应用程序使用 Angular Router,我上面所说的将不会很好地工作。您需要添加一个中间件。
例如,如果您使用的是 Express,则需要添加如下内容:

// server.js
const path = require('path');
app.get('/*all', function(req, res) {
  res.sendFile(path.join(__dirname + '/dist/index.html'));
});

希望能帮到你!