首页 文章

Angular和WebAPI配置

提问于
浏览
0

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

对我们的API的HTTP请求(/ api / /)没有到达我们的服务,而是看起来Angular路由正在拾取它们并返回index.html作为响应内容 .

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

我们已尝试将根路径指向服务,但我们会收到所有非API请求的404 .

1 回答

  • 0

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

    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);
        }
    }
    

相关问题