【问题标题】:Angular and WebAPI configurationAngular 和 WebAPI 配置
【发布时间】:2017-12-24 01:59:26
【问题描述】:

我们有一个 Angular 4 应用程序和一个 WebAPI 应用程序 (.NET Framework)。我们设置了一个 Azure 应用程序,其中部署了两个应用程序(客户端和服务)。根路径指向客户端。

对我们 API (/api/{controller}/) 的 HTTP 请求没有到达我们的服务,看起来 Angular 路由正在接收它们并将 index.html 作为响应内容返回。

我们如何设置 Azure,以便我们的 Angular 应用程序提供 HTML/CSS/JS 内容以及对“/api/”路由的任何调用到我们的服务?

我们已尝试让根路径指向服务,但随后我们收到所有非 API 请求的 404。

【问题讨论】:

    标签: c# angular azure asp.net-web-api .net-4.6


    【解决方案1】:

    为了回答我自己的问题,我需要提供本文所述的静态文件:

    https://mirkomaggioni.com/2016/09/11/owin-middleware-for-static-files/

    简而言之,我将服务 (WebAPI) 部署到 Azure 根目录,并将客户端 (Angular 4) 部署为已编译的“dist”文件夹。

    我添加了以下 NuGet 包:

    <package id="Owin" version="1.0" targetFramework="net452" />
    <package id="Microsoft.Owin" version="3.1.0" targetFramework="net462" />
    <package id="Microsoft.Owin.FileSystems" version="3.1.0" targetFramework="net462" />
    <package id="Microsoft.Owin.Host.SystemWeb" version="3.1.0" targetFramework="net462" />
    <package id="Microsoft.Owin.StaticFiles" version="3.1.0" targetFramework="net462" />
    

    然后创建了一个如下所示的 OWIN Startup 类:

    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var physicalFileSystem = new PhysicalFileSystem(@"./dist");
            var options = new FileServerOptions
            {
                EnableDefaultFiles = true,
                FileSystem = physicalFileSystem
            };
            options.StaticFileOptions.FileSystem = physicalFileSystem;
            options.StaticFileOptions.ServeUnknownFileTypes = true;
            options.DefaultFilesOptions.DefaultFileNames = new[]
            {
                "index.html"
            };
    
            app.UseFileServer(options);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2017-08-05
      • 1970-01-01
      • 2017-10-24
      • 2020-12-07
      • 2015-04-10
      相关资源
      最近更新 更多