Eggjs 使用中间件设置全局统一 404 页面
Eggjs 默认在没有任何输出的时候,返回的状态就是 404,这是一种情况,还有种情况就是我们本身就没有内容,用户访问了一个错误的 URL 网址,这些情况的 404 我们完全可以自定义一个页面,添加一些样式和功能,提高我们网站的用户体验。
1、首先创建一个中间件
// app\middleware\notFoundHandler.js 'use strict'; module.exports = () => { return async function notFoundHandler(ctx, next) { await next(); if (ctx.status === 404) { ctx.set('Content-type', 'text/html;charset=utf-8'); await ctx.render('page404.ejs', { pageInfo: { title: '未找到页面 - ' + ctx.app.config.appName, keywords: '', description: '', }, }); } }; };
2、修改 config\config.default.js 文件
config.middleware = ['notFoundHandler'];
3、编辑自定义的 404 模板
app\view\page404.ejs <!DOCTYPE html> <html lang="zh-cn"> <%- include('head', {pageInfo}) -%> <body> <div id="pjax-container"> <%- include('header') -%> <div class="mainPage"> <div class="container"> <div class="col-md-8 col-md-offset-2"> <div class="wt-container"> <div class="wp-info wp-info-danger"> <div class="wp-info-icon"><i class="fa fa-times"></i></div> <h3>404.Page not found!</h3> <p> 您查找的内容可能被删除或者更换了名字,亦或者是您手残输错误,当然不排除阁下人品问题,也有可能是电信网通那头接口生锈了。 </p> </div> </div> </div> </div> </div> <%- include('footer') -%> </div> <%- include('foot') -%> </body> </html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论