在WTM框架中如何自定义404页面

KnifeZ 10/20/2020, 11:41:22 AM 352

由于项目需要,必须实现自定义的404页面进行美化,而这一块又被框架托管了,普通net core的方式无法实现404设置。
框架内部默认给404页面返回空白,查看源码后发现是在 FrameworkServiceExtension-UseFrameworkService中对404状态码进行了处理,知道了问题所在就比较好解决了。
在项目中的Program.cs里添加如下代码

x.Use(async (context, next) =
{
   await next.Invoke();
   if (context.Response.StatusCode == 404)
   {
       Stream myStream = new FileStream(AppDomain.CurrentDomain.BaseDirectory   "/404.html", FileMode.Open);
       Encoding encode = System.Text.Encoding.GetEncoding("utf-8");//若是格式为utf-8的需要将gb2312替换
       StreamReader myStreamReader = new StreamReader(myStream, encode);
       string strhtml = myStreamReader.ReadToEnd();
       myStreamReader.Close();
       await context.Response.BodyWriter.WriteAsync(Encoding.UTF8.GetBytes(strhtml).AsMemory());
   }
});
0
1
2
3
4
5
6
7
8
9
10
11
12

然后在对应路径下添加自定义404.html文件,就可以根据自己的需要实现404效果了。

如果觉得文章帮助了您,可以请我喝杯咖啡

#Tags

WTM

发表评论

邮箱
昵称

热门文章

本站已稳定运行了1天 共计人访问
Powered by .NET 5 on ubuntu