在WTM框架中如何自定义404页面
KnifeZ 10/20/2020, 11:41:22 AM 243
由于项目需要,必须实现自定义的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效果了。
发表评论
邮箱
昵称