Asp核心静态SPA应用程序,FallbackRoute不工作

时间:2017-04-05 07:42:02

标签: asp.net-core single-page-application asp.net-core-middleware asp.net-core-1.1 asp.net-core-routing

鉴于

我们在asp核心有一个spa网页。 Asp核心只是作为静态文件处理程序。

为了处理刷新场景,我们有一个回退函数,可以将所有请求返回给模板页面。

现在本地和通过docker容器一切正常。

问题

当站点在IIS中托管时,后备功能无效。 当击中F5时,我得到了404并且页面未找到网站

在IIS日志中,我可以看到404发生但没有调用重定向。

但是当我在IISExpress中调试时,一切正常。它只在生产IIS上。所以我假设某种默认的IIS映射?

这里是asp应用程序的代码

            app.UseResponseCompression();

            loggerFactory.AddConsole();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            //Route Fallback middleware    
            app.Use(async (context, next) => 
            {
                await next();

                if (context.Response.StatusCode == 404)
                {
                    context.Request.Path = "/index.html"; 
                    await next();
                }
            });

            app.UseDefaultFiles();
            app.UseStaticFiles();

我也尝试了但也没有工作

app.Use(async (context, next) =>
            {
                await next();

                if (context.Response.StatusCode == 404)
                {
                    context.Response.Redirect("/index.html");

                }
            });

0 个答案:

没有答案