如何显示维护页面?

How can I show a maintenance page?

我想在我的网站上显示一个维护页面。我计划将布尔值保存到数据库中,以控制何时显示页面。我怎样才能让维护页面只显示我的控制器路由?我希望继续让 sails 正常提供脚本、样式表和图像。

您可以使用策略来实现这一点。

// api/policies/inMaintenance.js

module.exports = function(req, res, next) {
    var maintenanceMode = ... // get the value
    if (maintenanceMode) return res.view('maintenance');
    next();
}


// config/policies.js

module.exports.policies = {
    '*': 'inMaintenance',
    ...
}

在您的 views 文件夹中添加 maintenance.ejs.
所有资产仍将可用。

不过,这种方法有一个缺点,如果在 config/routes.js 中您有一条直接指向某个视图的路由,它将不会通过该策略。因此,您需要所有路由都由控制器处理。

您可以查看 Sails documentation on policies 以更好地了解它们的工作原理。