我在将我的Angular 应用程序部署到新的Azure应用程序服务时遇到问题.

我正确地设置了部署.对于CI,我设置了它,以便它判断我在主分支上的GitHub Repo,并在有签入时重新部署.它创建了一个GitHub Actions YML文件,我对其进行了更新以安装、构建和部署我的应用程序.我已经验证了它正在部署构建的文件.当我推送到那个分支时,我的GitHub操作工作流被启动,这被我的应用程序服务的部署中心检测到,并且它成功地完成了.

当我导航到应用程序页面的url时,我收到了消息"您的Web应用程序正在运行,正在等待您的内容".

我已经通过scm.azurewebsites.net调试控制台验证了我的文件已经上传到了site/wwwroot/目录中.当我部署更改时,该目录中的文件会反映这些更改.我曾try 在App Service上包含一个与以前的ANGLE App一起工作的web.config文件.我已经验证了它也被上传到根文件夹中.

毫无办法.看起来我把所有东西都准备好了,只是它不能识别内容.如何让应用程序服务识别我的Content/index.html文件?

推荐答案

有几件事你会想要判断的:

  1. 确保您已正确地将Runtime Stack设置为Node {Version}
  2. 您将需要到您的Angular 站点的正确路径,在App Settings --> Configuration --> General Settings中,您将希望将以下内容添加到Startup Command:
pm2 serve /home/site/wwwroot --no-daemon --spa

显然,您需要替换命令中的路径.

最新情况: 如果你的Angular 应用程序是一个静态站点,你可能会考虑使用Azure Storage Account来托管该站点.您可以创建一个新的Azure Storage Account,一旦创建了资源,您就可以使用Data management --> Static Website选项来设置您的存储帐户来提供静态内容. 如果你想添加自定义域和SSL证书,你可以创建一个新的CDN Profile,直接在你新创建的存储帐户中提供来自你的$web的文件. 就我个人而言,我发现这种方法效果很好,并降低了托管成本. 你可以找到这个here.的完整演练

Angular相关问答推荐

对子router-outlet 应用主机样式

筛选器不会从文本输入触发更改事件

从canActivate创建时,Angular material 对话框不接收MAT_DIALOG_DATA

如何使用formBuilder.Group()从角形表单中删除选定的选项?

RXJS拆分返回值,多次调用后重新加入

自定义垫日历中选定的日期(Angular material )

无法在单个元素上多次监听同一个事件

相同的 Angular 代码在生产环境中停止工作

Angular:如何设置 PrimeNG p-steps 组件中已完成步骤的样式?

为什么 AngularFire .set() 永远等待响应并且不继续?

Angular 13 - 何时创建嵌入式视图?

Angular 服务decorator 提供在延迟加载的根效果

Angular ngFor 索引从 1 开始 循环

angular2:错误: TypeError: Cannot read property '...' of undefined

NgrxStore 和 Angular - 大量使用异步管道或在构造函数中只订阅一次

Angular 5 中 value 和 ngValue 的区别

错误:angular2 中没有 HttpHandler 的提供者

安装特定版本的 ng cli

如何作为模块的子模块路由到模块 - Angular 2 RC 5

Angular 4.3 HttpClient:拦截响应