Javascript 节点中间件为移动用户提供不同的HTML文件?

Javascript 节点中间件为移动用户提供不同的HTML文件?,javascript,angularjs,node.js,express,middleware,Javascript,Angularjs,Node.js,Express,Middleware,我刚刚为我的公司创建的一个网站目前响应迅速,在移动设备上运行良好,但我正在处理一个恼人的闪烁问题,该问题是由一个基于视口提供不同大小的图像而引起的,但在HTML本身中是这样做的 这个网站最终将在几个月后通过Cordova作为本地移动应用程序发布,但与此同时,我们希望使用节点中间件动态地为移动版本提供服务。我想将index.html重定向到mobile.html,使用新的配置和状态角度文件,但在其他情况下继续使用相同的角度控制器/服务/工厂和新的移动html模板–如果这是不可能的,我需要复制所有内

我刚刚为我的公司创建的一个网站目前响应迅速,在移动设备上运行良好,但我正在处理一个恼人的闪烁问题,该问题是由一个基于视口提供不同大小的图像而引起的,但在HTML本身中是这样做的

这个网站最终将在几个月后通过Cordova作为本地移动应用程序发布,但与此同时,我们希望使用节点中间件动态地为移动版本提供服务。我想将index.html重定向到mobile.html,使用新的配置和状态角度文件,但在其他情况下继续使用相同的角度控制器/服务/工厂和新的移动html模板–如果这是不可能的,我需要复制所有内容,那么我将重新考虑这个过程

以下是我的server.js文件的相关部分:

    const app               = express();
    let mobile              = false;
    const socialMedia       = express.Router();

    let server              = require('http').createServer(app);

    app.use(function(req, res, next){
      var ua = req.headers['user-agent'];
      if(/^(facebookexternalhit)|(Twitterbot)|(LinkedInBot)|(Pinterest)|(Slackbot-LinkExpanding)/gi.test(ua)){
         socialMedia(req, res, next);
      }
      else if(/Mobi/i.test(ua)){
        mobile = true;
      } else {
        next();
      }
    });

    // Require routes
    let postRoutes          = require('./server/routes/postRoutes');
    let categoryRoutes      = require('./server/routes/categoryRoutes');
    let pageRoutes          = require('./server/routes/pageRoutes');

    // Use routes
    app.use(postRoutes);
    app.use(categoryRoutes);
    app.use(pageRoutes);

    // Set up app and body parser
    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(express.static(path.join(__dirname, '/client')));
    app.set('view engine', 'jade');
    app.use('*', function(req, res){
      if (mobile) {
        res.sendFile(__dirname + '/client/mobile.index.html');
      } else {
        res.sendFile(__dirname + '/client/desktop.index.html');
      }
    });

    // Start server
    server.listen(process.env.PORT || 5000, function(){
      console.log('Express server listening on port %d', this.address().port);
    });
即使将mobile设置为false,它也会发送mobile.index.html文件,当我试图通过Chrome开发工具更改用户代理时,根本不会加载任何内容,它只是不断尝试加载,但始终不会呈现任何内容


这不可能吗?我找不到处理这种情况的最佳方法。

嗨,你能试着把你所有的路线都封锁起来吗:
app.use(postRoutes);应用用途(类别);应用程序使用(页面路由)在此块之后
app.use('*',function(req,res){…
?嗨,你能试着把你所有的路由块:
app.use(postRoutes);app.use(categoryRoutes);app.use(pageRoutes);
在此块之后
app.use('*',function(req,res){…