Azure Web App wwwroot在发布

时间:2018-06-07 18:05:57

标签: angular azure iis asp.net-core asp.net-web-api2

步骤:

  1. 在azure上创建空Web应用程序
  2. 创建空的.NET Core Web API VS2017中的项目
  3. 此项目将包含wwwroot文件夹。配置我的角度5应用程序以构建到wwwwroot / dist后,我从VS发布到azure web app
  4. 发布网站后,无法加载天蓝色。在Web应用程序设置中,应用程序根目录设置为site\wwwroot Azure WebApp Application Settings

  5. 在ftping(发布)到Web服务器之后,我可以看到应用程序的当前文件结构是/site/wwwroot/wwwroot所以这很奇怪。 wwwroot已经嵌套在自身内部。

  6. 要加载网站,我只需将应用程序设置更新为指向/site/wwwroot/wwwroot
  7. 大。有用。但是,如果我需要返回并向网站发布新的更改,则Web服务器上的文件夹结构会根据更新的应用程序设置而更改!现在该站点将无法加载,新文件系统为site\wwwroot\wwwroot\wwwroot我可以再次更新azure上的应用程序设置,并将该路径设置为root,并且该站点将再次起作用。但现在我在服务器上有两个网站副本,我不能帮助,但这不是一个“最佳实践”。更不用说如果我再次发布该网站,文件系统将只附加另一个wwwroot并打破该网站。

    这里发生了什么?如何使用适当的文件系统结构发布我的网站。当网站看起来像这样我必须管理多个web.config和它使我很难弄清楚如何使角度路由器工作。这一切都是通过初始微软预设(Web应用程序和webapi应用程序)完成的。

    我觉得理想情况下整个网站应该在wwwroot下使用一个web.config

    是这样的吗?谢谢你的阅读。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

如果您想将wwwroot作为静态文件投放,则应在Startup.cs文件中稍微更改一下。

尝试将以下代码段添加到Configure()文件中的Startup.cs方法中。

        app.UseDefaultFiles(new DefaultFilesOptions() {
            DefaultFileNames = new List<string>() { "index.html" }
        });
        app.UseStaticFiles();

以下是完整的示例代码:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseDefaultFiles(new DefaultFilesOptions() {
            DefaultFileNames = new List<string>() { "index.html" }
        });
        app.UseStaticFiles();

        app.UseMvc();
    }

现在,您应该将您的网络应用程序部署到Azure中而不会出现问题。