从渐进式增强的角度来看,我只是在考虑增强Web应用程序的不同方法,以便移动用户获得服务器呈现的视图,而不是桌面用户。
我正在考虑的一件事是渲染移动视图。基本节点代码将是...
router.get("/components", function(req, res) {
var mobile = isMobile(req.headers["user-agent"]);
res.render("components" + (mobile ? "-mobile" : "");
});
通过这种方式,我可以渲染一个使用更少 JavaScript 的更移动友好的视图,并在桌面上渲染更完整、更丰富的 SPA。
想知道,是否以及为什么这可能是也可能不是一个坏主意,以及您可能拥有的任何替代方案。
谢谢!
根据任意条件(设备、语言等)为同一 URL 呈现不同的内容是一个很大的禁忌。
您可以做的是设置中间件,以验证用户是否来自移动设备并相应地重定向。
是移动的.js
module.export = function(req, res, next) {
if (isMobile(req.headers["user-agent"])) {
res.redirect('//m.' + req.hostname + req.path);
} else {
next()
}
}
路线.js
require('./isMobile');
router.get("/components", isMobile, function(req, res) {
res.render("components");
});
或者,您可以使用中间件,使其适用于所有路由。
应用.js
require('./isMobile');
app.use(isMobile)
// Load routes here