Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs 1.3.16使用HTML5模式进行路由,url正在更新,但内容未更新_Angularjs_Node.js_Routing_Ngroute_Html5mode - Fatal编程技术网

angularjs 1.3.16使用HTML5模式进行路由,url正在更新,但内容未更新

angularjs 1.3.16使用HTML5模式进行路由,url正在更新,但内容未更新,angularjs,node.js,routing,ngroute,html5mode,Angularjs,Node.js,Routing,Ngroute,Html5mode,我们使用AngularJS版本1.3.16和nodeJS作为后端,ng路由用于角度路由。工作代码由#组成!作为节点和角度的URL分隔符 示例URL: /商店/1234/#/部门/产品 /商店/1234/#/部门/产品/类别/水果 NodeJS路由代码: app.get('/store/:storeid', ctrl.storeView); $routeProvider.when('/department/:deptIndex', { controller: 'Car

我们使用AngularJS版本1.3.16和nodeJS作为后端,ng路由用于角度路由。工作代码由#组成!作为节点和角度的URL分隔符

示例URL: /商店/1234/#/部门/产品 /商店/1234/#/部门/产品/类别/水果

NodeJS路由代码:

    app.get('/store/:storeid', ctrl.storeView);
      $routeProvider.when('/department/:deptIndex', {
    controller: 'CartController',
    resolve: {
        // I will cause a 1 second delay
        delay: function ($q, $timeout) {
            var delay = $q.defer();
            $timeout(delay.resolve, 1000);
            return delay.promise;
        }
    }
}).when('/department/:deptIndex/category/:catIndex', {
    controller: 'CartController',
    resolve: {
        // I will cause a 1 second delay
        delay: function ($q, $timeout) {
            var delay = $q.defer();
            $timeout(delay.resolve, 1000);
            return delay.promise;
        }
    }
});
$locationProvider.html5Mode(false).hashPrefix('!');
角度路由代码:

    app.get('/store/:storeid', ctrl.storeView);
      $routeProvider.when('/department/:deptIndex', {
    controller: 'CartController',
    resolve: {
        // I will cause a 1 second delay
        delay: function ($q, $timeout) {
            var delay = $q.defer();
            $timeout(delay.resolve, 1000);
            return delay.promise;
        }
    }
}).when('/department/:deptIndex/category/:catIndex', {
    controller: 'CartController',
    resolve: {
        // I will cause a 1 second delay
        delay: function ($q, $timeout) {
            var delay = $q.defer();
            $timeout(delay.resolve, 1000);
            return delay.promise;
        }
    }
});
$locationProvider.html5Mode(false).hashPrefix('!');
为了使URL SEO友好和可爬行,我们必须从URL中删除hashbang。
因此,当我们试图启用html5模式时,问题就出现了。启用模式后,角度路由不起作用。

每个路由都应该有一个模板或模板URL,并且HTML应该有ng视图以查看路由内容。

是否在index.HTML中设置了基本URL

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

当我将我的基本href更新为节点服务器url时,我的路由开始工作:


此外,我还更新了以存储代码为前缀的角度路由URL,如:

app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider.when('/:storeid/department/:deptIndex', {
    //my routing code
});

你能详细说明什么是“不工作”吗?是否正在抛出错误?屏幕是空白的吗?有任何路由工作吗?您的代码与$locationProvider.html5Mode(false)一起工作?@BOSS是的,我的代码与html5Mode不匹配。@AJFunk“不工作”在我的意义上意味着url得到更新,但部分未显示。我可以看到我的角度路由没有得到匹配。在ng Route中,它总是转到其他位置。您使用的url是什么??没有html 5和html 5是否必须使用模板或模板URL?我没有在代码中的任何地方使用它们。如果禁用HTML5模式,我的路由工作绝对正常。您的代码在没有模板或templateURL的情况下仍然可以工作,但您将了解使用路由的全部要点。在你的问题描述中,“内容不更新”是什么意思?它是否适用于谷歌机器人?我有一个HTML5模式的网站,URL中没有哈希,但谷歌机器人仍将其视为重复:(