在Cloud Foundry中部署Angular应用程序



我正在尝试在Cloud Foundry中部署我的Angular应用程序。

使用ng serve在本地进行测试后,我确认我的应用程序运行良好。

以下是我在 CF 中部署的步骤:

  1. 在创建dist文件夹ng build --prod执行的应用程序目录中">

  2. 已将dist文件夹复制到其他目录,并创建manifest.yml包含以下内容的文件:(yml文件和dist文件夹位于同一目录中(

    applications:
    name: deploy-ng4
    memory: 128M
    buildpack: https://github.com/cloudfoundry/staticfile-buildpack.git
    path: dist
    
  3. 执行

    cf push deploy-ng4 -m 128M -b https://github.com/cloudfoundry/staticfile-buildpack.git
    
  4. CF 日志显示已部署的服务正在运行,我没有看到任何错误。

  5. 当我尝试浏览此已部署应用程序的cf apps中列出的 URL 时,它显示 403 - 禁止。

你使用了错误的构建包。 Cloud Foundry 内置了对 NodeJS 的支持,因此如果您的应用程序包含 package.json 文件,您可以发出以下命令:

cf push <APP> -m <Memory> .

NodeJS 构建包是开源的,托管在:https://github.com/cloudfoundry/nodejs-buildpack,所以你可以自定义构建包并像这样推送它:

cf push <APP> -m <Memory> -b 'https://github.com/cloudfoundry/nodejs-buildpack'

还要检查cf help push以查看所有参数选项等。

顺便说一句,如果 NodeJS 的版本与构建包中的默认版本不匹配,则必须在package.json中明确设置版本号。 请参阅文档。

可能已经解决了,但对于面临类似问题的人:检查angular.json文件中outputPath属性。对于这种情况,它必须是:

"outputPath": "dist"

我在 PCF 部署中遇到了类似的问题。我用IntelliJ Idea生成了我的Angular应用程序,它已将项目名称附加到outputPath。然后我得到了正好 403 - 禁止访问 PCF 为服务提供的 URL,因为正确的 URL/projectname附录中。

相关内容

  • 没有找到相关文章

最新更新