hapi捕获没有资产文件夹404状态的所有路由

时间:2015-04-29 08:54:28

标签: hapijs

我正在开发SPA 我想管理404状态 但没有使用单独的文件夹 (在这种情况下是资产)

server.route(
    {    // Angular/API Route
        method: 'GET',
        path: '/api',
        handler: function (request, reply) {
             reply( {api: 'response' } )
        }
    });

    server.route({    // Other assets If you have
        method: 'GET',
        path: '/assets/{param*}',
        handler: {
        directory: {
            path: './assets',
            listing: false,
            index: true
        }
    });

    server.route({   // Everything else 
        method: 'GET',
        path: '/{p*}',
        handler: function (request, reply) {
            reply.file('public/html/index.html');
        }
    });

我的意思是我有一个像

这样的部署

deploy

所以,如果我使用资产,我将改变我的所有部署 和gulpfile。

有没有办法在不使用的情况下管理404状态 一个额外的文件夹?

更新 到现在为止,我按照@Matt Harrison的提示进行了研究

server.ext('onPreResponse', function (request, reply) {
    var req = request.response;
    if (req.isBoom && (req.output.statusCode===404)) {
      return reply.redirect('/#!/404');
    }
    return reply.continue();
});

0 个答案:

没有答案