【问题标题】:Do I need node.js (express) to deploy an Angular App to Heroku?我需要 node.js (express) 将 Angular 应用程序部署到 Heroku 吗?
【发布时间】:2021-01-17 17:37:10
【问题描述】:

我能否仅在 Heroku 上使用 node.js / express 运行我的 Angular 应用程序(使用 ng build --prod 构建)?

据我了解,生产中的 Angular 不需要 node.js 服务器,但可以仅使用生成的静态文件(和一些配置)运行。您可以在 node.js 服务器/express 上运行它,但这不是强制性的。

到目前为止,在我在 Google 上找到的关于在 Heroku 上部署 Angular 应用程序的大多数教程中,说明总是在 Angular 应用程序中设置一个带有 express 的 server.js 文件,并且在 package.json 中经常有类似的内容带有ng build --prod 命令的postinstallheroku-postbuild 脚​​本。

我猜,我混淆了一些概念,或者对 Heroku 上 Angular 应用程序的部署存在普遍误解。

【问题讨论】:

  • 你甚至不需要 Heroku 来运行 Angular 应用程序,我不会推荐它。将其托管为静态站点(因为它就是这样),这可以更简单、更便宜地完成,例如使用AWSMicrosoft Azure

标签: javascript node.js angular heroku deployment


【解决方案1】:

不,您还可以创建一个简单的 http-server 并托管应用程序。但是,这不会帮助您了解您的应用程序是如何成为服务器的。 Express-node 服务器重量轻,可以帮助您定义路由。

您还可以重定向此服务器上的任何 https 请求。

const forceSSL = function() {
  return function (req, res, next) {
    if (req.headers['x-forwarded-proto'] !== 'https') {
      return res.redirect(
       ['https://', req.get('Host'), req.url].join('')
      );
    }
    next();
  }
}

app.use(forceSSL());

您还可以使用 Docker 在 Heroku 上运行 Angular 应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-07
    • 2021-08-29
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 2017-01-31
    • 2018-05-31
    相关资源
    最近更新 更多