我目前正在通过Azure Pipelines部署Angular Unviversal应用程序。页面已启动并正在运行。但我在尝试设置动态元标签时遇到了一个问题。我正在使用Angular的Meta来实现这些。
在本地主机上一切正常。我构建应用程序并启动main.js。然后我查看页面源代码,一切看起来都很好,元标签在那里,应用程序根目录中填充了适当的HTML和Angular组件:<app-root ng-version="14.2.2" ng-server-context="other"><router-outlet></router-outlet><app-landing _nghost-sc182="" class="ng-star-inserted"><div _ngcontent-sc182="" class="flex min-h-[100vh] w-full flex-col">...</app-root>
。
但当应用程序部署在Azure上时,页面源是";空">
Meta标签不起作用,<head>
中的<title>
也没有更新,应用程序根目录中没有任何内容,看起来如下:<app-root ng-version="14.2.2" ng-server-context="other"><router-outlet></router-outlet><!--container--></app-root>
其中没有HTML/Angular组件。
你知道问题可能是什么吗?
问题出在Azure构建管道上。Angular Universal及其服务器端渲染在构建管道如大家在线所说的那样设置的情况下不会正常工作。我只见过有人说你需要从项目的服务器文件夹中复制main.js。SSR在这种情况下根本不起作用。我复制了整个服务器文件夹,之后SSR正常工作。
我在尝试使用npm run dev:ssr运行应用程序时遇到了同样的问题经过大量搜索,我找到了这个
很快要解决这个问题:您必须在index.html中制作不带属性的<app-root>
标记。