• .Net Core 开发中遇到的问题列表 (不定期更新)


    1. MapSpaFallbackRoute 导致 swagger 无法使用

    最近在业余时间用dotnet core 2.0开发一个开源项目,采用的是react+redux+webapi的方式,今天打算把swagger给引进来,结果发现在本地无法访问http://127.0.0.1/swagger, 调试了一下,最后发现是Startup的Configure方法配置有问题。

    当使用dotnet创建项目的使用,dotnet默认会在Startup文件中的Configure方法添加一条这样的路由规则,为了让swagger跑起来,只要把这个路由规则删掉就可以了。

    app.UseMvc(routes =>
    {
      routes.MapSpaFallbackRoute(
      name: "spa-fallback",
      defaults: new { controller = "Home", action = "Index" });
    });

    或者还有另外一个方案就是把app.UserSwagger()放到MapSpaFallbackRoute的前面,这主要和Asp.Net Core中间件的使用加载顺序有关。

    问题解决了,那么我们来看看MapSpaFallbackRoute到底是什么?为什么会有MapSpaFallbackRoute呢?

    它的主要目的是让前端可以处理404的问题,当请求的request url都没有匹配到route,那么MapSpaFallbackRoute会把请求跳转到Home.Index, 交由前端来处理。 

    碰到的一个问题是,在处理/api的后端接口时,我们并不希望后端的接口也返回404,所以可以通过下面的代码过滤/api的后端API请求

    app.MapWhen(x => !x.Request.Path.Value.StartsWith("/api"), builder =>
    {
        builder.UseMvc(routes =>
        {
            routes.MapSpaFallbackRoute(
            name: "spa-fallback",
            defaults: new { controller = "Home", action = "Index" });
        });
    });
  • 相关阅读:
    openvswitch 监听端口变化
    Python set() 函数
    openstack-neutron-OVS agent分析
    openvswitch ovs-appctl 使用
    python setup.py install 报错【Project namexxx was given, but was not able to be found.】
    openstack nova 创建虚机流程
    Linux kernel 模块 hello 测试
    openvswitch 流表操作
    软件测试开发之第一篇(测试文档)
    Java工具之Myeclipse程序调试
  • 原文地址:https://www.cnblogs.com/unclechan/p/7574811.html
Copyright © 2020-2023  润新知