【发布时间】:2018-11-17 17:51:57
【问题描述】:
步骤:
- 在 azure 上创建空 Web 应用
- 创建空的 .NET Core Web API VS2017中的项目
- 此项目将包含一个 wwwroot 文件夹。将我的 Angular 5 应用程序配置为构建到 wwwwroot/dist 后,我从 VS 发布到 azure web 应用程序
在 ftping(发布)到 Web 服务器后,我可以看到应用程序的当前文件结构是
/site/wwwroot/wwwroot所以这很奇怪。 wwwroot 已经嵌套在其自身中。- 要加载网站,我只需将应用程序设置更新为指向
/site/wwwroot/wwwroot。
太好了。有用。但是,如果我需要返回并发布对站点的新更改,则网络服务器上的文件夹结构会根据更新的应用程序设置而更改!现在该站点将无法加载,并且新文件系统为 site\wwwroot\wwwroot\wwwroot 我可以再次更新 azure 上的应用程序设置并将该路径设置为根,站点将再次运行。但是现在我在服务器上有两个网站副本,我不禁认为这不是“最佳实践”。更不用说如果我再次发布该站点,文件系统只会附加另一个 wwwroot 并破坏该站点。
这里发生了什么?如何使用适当的文件系统结构发布我的网站。当网站看起来像这样时,我必须管理多个web.configs,这让我很难弄清楚如何让角度路由器工作。这一切都是通过最初的 microsoft 预设(网络应用程序和 webapi 应用程序)完成的。
我觉得理想情况下,整个网站应该在 wwwroot 下并带有一个 web.config
是这样吗?感谢您的阅读。任何帮助表示赞赏。
【问题讨论】:
-
Web API 项目是否必须配置为从 wwwroot 返回静态文件?我认为它不知道如何为他们服务。
-
如何将您的网站发布到 Azure?您是否将 Visual Studio 2017 的内置发布功能与 Azure 应用服务中的 发布配置文件 结合使用?
-
@WillHuang 是的。我右键单击该项目并选择发布。然后我在我的 azure 帐户上选择 web 应用程序并从那里继续。
-
创建一个全新的 Azure Web 应用程序和一个全新的 WebAPI 项目,其中包含 wwwroot 内的 index.html 和发布甚至不起作用。 API 路由将起作用,但 index.html 不会呈现。这是微软的问题吗?我觉得它不是,因为似乎没有人有这个问题。
-
你使用的是 ASP.NET Core 2.1 吗?
标签: angular azure iis asp.net-core asp.net-web-api2