【问题标题】:Express - enabling catch all for Angular 1.x html5Mode with multiple router files is not workingExpress - 为具有多个路由器文件的 Angular 1.x html5Mode 启用全部捕获功能不起作用
【发布时间】:2020-04-26 15:53:32
【问题描述】:

好的,所以这个问题来自this 帖子,这也是我的问题,但有点转移到这个问题上。

现在的问题是,我的 Angular 应用程序可以工作,但是当涉及到 Node 路由时,例如 /login,浏览器认为它是 Angular 路由。当我刷新整个页面时,浏览器确实将其检测为节点路由,但当我在 Angular 路由启动后导航站点时不会检测到它。

长话短说,这是我的路线文件:

require('./routes/routes.js')(express, app);
require('./routes/default.js')(express, app);

routes.js 文件:

module.exports = function(express, app){
    var router = express.Router();

    router.get('/', function(req, res){
        res.render('index');
    });

    router.get('/login', function(req, res){
        if (req.isAuthenticated()){
            res.render('index');
        } else {
            res.render('login');
        }
});

default.js:

module.exports = function(express, app, passport, Promise){
    var defaultRouter = express.Router();

    defaultRouter.get('/*', function(req, res, next) {
        res.render('./views/index.html');
    });
};

我们将非常感谢您的帮助。

谢谢

【问题讨论】:

    标签: angularjs express-router html5mode


    【解决方案1】:

    我放弃了在根 URL 上进行这项工作,因此我将 /index 添加到 baseURL 中,如下所示:

    index.html 文件:

    <head>
      <base href="/index/">
    </head>
    

    那个,我在routes.js文件中添加了一个catch all,如下:

    module.exports = function(express, app){
        var router = express.Router();
    
        router.get('*', function(req, res, next) {
            if(req.url == '/' || req.url == '/login'){
                next();
            } else {
                res.sendfile('./views/index.html');
            }
        });
    
    
        router.get('/', function(req, res){
            res.render('index');
        });
    
        router.get('/login', function(req, res){
            if (req.isAuthenticated()){
                res.render('index');
            } else {
                res.render('login');
            }
    });
    

    当然有这个角度文件:

    $locationProvider.html5Mode({
        enabled: true,
        requireBase: true
    }).hashPrefix('');
    

    还有。它现在就像一个魅力。

    我希望这对我的情况有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2022-07-21
      • 2022-08-23
      • 2020-03-16
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多