如何在共享主机上部署一个简单的 Angular2 应用程序?

How to deploy a simple Angular2 app on a shared hosting?

我想在我的共享主机上部署我的 Angular2 应用程序。我尝试通过 ssh 传输文件,但应用程序没有 运行。我想有一些事情可以做,比如本地的 ng 服务。

要遵循哪些步骤?我在互联网上找不到它们:/

谢谢

编辑

我有一个非常简单的应用程序,其中包含一些路由和组件。没有服务器端代码,因为我正在调用我的 REST api 来满足我的需要。

您必须构建应用程序,查看应用程序根目录中的 package.json。你通常会有 build dev/prod 或类似的东西。然后只需将 dist 文件夹的内容复制到服务器并确保 scrips src 在索引中是正确的。文件.

当然你必须在服务器上提供它。您必须执行几个步骤:

  • 将你的文件传输到服务器(以为这样就完成了)
  • 通过 SSH 登录并在您的应用程序目录中执行 npm install
  • 更改您的 app.js(或其他)以绑定到您的互联网接口。默认设置是将其绑定到 localhost,因此您将无法从本地以外的地方访问它。
  • 您还需要在服务器上打开端口。这涉及使用反向代理(如 nginx)来侦听标准端口 (80) 并将其重定向到您的应用正在侦听的端口。如果您希望您的应用程序直接在端口 80 上侦听,您需要在 root 用户下 运行 它,不推荐这样做。尝试使用 iptables 命令打开端口,例如:iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
  • 在您的应用程序目录中执行您的 ng serve(或其他)

此说明用于开发,不用于生产。

在您的本地开发机器上执行 ng build --prodng build --prod --aot

这会将您的应用构建到 dist 文件夹中。将 dist 文件夹的内容复制到共享主机的 public 目录。

根据您的主机,您可能需要配置网络服务器(nginx、Apache、IIS 等)来为您的文件提供服务。不要 运行 ng 在您的共享主机上提供服务。

除非您计划 运行在通用模式下运行您的应用程序,它会在服务器端重新呈现页面,否则不要将整个应用程序复制到您的共享主机。不要在共享主机上执行 npm install。只需将构建的应用程序文件复制到 dist 文件夹中即可。