鉴于
我们在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");
}
});