zoukankan      html  css  js  c++  java
  • .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" });
        });
    });
  • 相关阅读:
    LinuxMCE
    qBittorrent 0.9.0
    Exaile 0.2.9
    GAdminHttpd:图形化的 Apache 打点对象
    FBReader-电子书阅读对象
    CSSED:Linux 下 Web 拓荒者的 CSS 编纂利器
    Canorus:乐谱编辑软件
    AutoScan-收集监视及办理器械
    Lunar Applet:在桌面表现阴历
    Totem 2.18.1
  • 原文地址:https://www.cnblogs.com/unclechan/p/7574811.html
Copyright © 2011-2022 走看看