Asp.net core ASP.NET Core 3.1不会加载URL末尾没有“/”的页面

Asp.net core ASP.NET Core 3.1不会加载URL末尾没有“/”的页面,asp.net-core,routes,single-page-application,static-files,Asp.net Core,Routes,Single Page Application,Static Files,我有一个ASP.NET Core 3.1 MVC应用程序。在Startup.cs中,我使用以下配置设置了PathBase public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UsePathBase("/foo/bar"); ... string spaPath = "/foo/bar";

我有一个ASP.NET Core 3.1 MVC应用程序。在Startup.cs中,我使用以下配置设置了PathBase

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UsePathBase("/foo/bar");
            ...

            string spaPath = "/foo/bar";
            app.Map(spaPath, appBuilder => {
                appBuilder.UseSpa(spa =>
                {
                    spa.Options.DefaultPage = spaPath + "/index.html";
                    spa.Options.DefaultPageStaticFileOptions = new StaticFileOptions
                    {
                        RequestPath = spaPath,
                    };
                    spa.Options.SourcePath = "ClientApp";
                    if (env.IsDevelopment())
                    {
                        spa.UseReactDevelopmentServer(npmScript: "start");
                    }
                });
            });

        } 
发布后,它可以完美地工作,但只能在URL末尾使用/。但若我删除最后一个字符,应用程序将找不到一些静态文件。应用程序没有请求,而是尝试从中获取此文件,但预期找不到它。有没有办法设置应用程序尝试查找此文件的路径


提前谢谢

如果指定的路径库与请求中的路径不匹配,则UsePathBase不起作用。您的SPA请求的是foo/css/xxx.css,它不是以/foo/bar开头的,因此完全跳过基于路径的中间件,ASP.NET Core自然会尝试提供不存在的foo/css/xxx.css。问题可能在于您的SPA,而不是ASP.NET内核。例如,你可能想看的反应。是的,我理解。如果请求是从foo/css/xxx.css到foo/bar/css/xxx.css,我尝试将其重定向,但据我所知,重定向步骤是在启动SPA并加载所有静态文件之后进行的。是否有任何方法可以说requst server/foo/bar必须托管在server/foo/bar/上,而不是在server/foo/上,并且具有bar属性、文件夹或操作,而哪个应用程序尝试解析它。如果指定的路径库与请求中的路径不匹配,则ThanxUsePathBase不起作用。您的SPA请求的是foo/css/xxx.css,它不是以/foo/bar开头的,因此完全跳过基于路径的中间件,ASP.NET Core自然会尝试提供不存在的foo/css/xxx.css。问题可能在于您的SPA,而不是ASP.NET内核。例如,你可能想看的反应。是的,我理解。如果请求是从foo/css/xxx.css到foo/bar/css/xxx.css,我尝试将其重定向,但据我所知,重定向步骤是在启动SPA并加载所有静态文件之后进行的。是否有任何方法可以说requst server/foo/bar必须托管在server/foo/bar/上,而不是在server/foo/上,并且具有bar属性、文件夹或操作,而哪个应用程序尝试解析它。塔克斯