我正在使用Angular 8和Asp.Net Core 2.1。我首先使用Visual Studio模板创建了Asp.Net Core应用程序。然后,我在repo文件夹中打开一个命令提示符,并使用ng create MyClientApp创建了我的Angular应用程序。我现在正在使用Visual Studio Code来管理应用程序的Angular部分。如果我在本地运行该应用程序,则一切正常。我正在尝试将Angular应用程序部署到运行.NET v4.7框架的Azure应用程序服务。
客户端在localhost:4200上运行
api在localhost:5849 / api上运行
我现在正尝试将Angular应用程序部署为Azure应用程序服务,但无法正常工作。
有人知道使用Visual Studio Code部署应用程序的简便方法吗?理想情况下,我想使用Azure App Service扩展。
node = v10.14.0
NPM = 6.4.1
我注意到,如果我运行ng build,它将建立完整的dist文件夹。如果我运行ng build --prod,它将不会构建完整的dist文件夹。我看到这样的40多个错误。
src / app / content / content.component.html(157,25)中的错误::属性“ userService”是私有的,只能在“ ContentComponent”类中访问。
src / app / content / content.component.html(91,122)::属性'filter'在'ContentComponent'类型上不存在。
我还注意到,根据Azure控制台,我的App Service为节点运行v0.10.40,为npm运行1.4.28。我添加了此WEBSITE_NODE_DEFAULT_VERSION 10.14.0,但这没用。
我希望这样的事情能奏效。这适用于ng build,但不适用于我。 https://dzone.com/articles/deploy-an-angular-app-from-visual-studio-code-to-a-1
更新1: 看起来不支持节点v10.14.0。我现在在Angular应用中运行v10.14.1,控制台反映了这一点,但仍然无法正常工作。我正在尝试查看是否提供任何错误。
非常感谢您的帮助。谢谢!
答案 0 :(得分:0)
我终于做到了。关键是确保在部署应用程序时选择dist文件夹内的文件夹(dist \ myclientapp)。然后,我必须使用FTP将以下web.config添加到wwwroot文件夹。最后一步是重新启动应用程序。
<configuration>
<system.webServer>
<!-- indicates that the index.js file is a node.js application
to be handled by the iisnode module -->
<handlers>
<add name="iisnode" path="index.js" verb="*" modules="iisnode" />
</handlers>
<!-- adds index.js to the default document list to allow
URLs that only specify the application root location,
e.g. http://mysite.azurewebsites.com/ -->
<defaultDocument enabled="true">
<files>
<add value="index.js" />
</files>
</defaultDocument>
</system.webServer>
</configuration>