【问题标题】:chrome removes url path angularchrome删除url路径角度
【发布时间】:2013-07-29 19:34:01
【问题描述】:

我在 Chrome 中打开网站时遇到了 Angular 问题

_localhost/angular/_

网址更改为

_localhost/#_

然而在 Firefox 中一切都如预期的那样

我认为它是由 routeProvider 引起的

var Angapp = angular.module('angApp', []).
config(['$routeProvider', function ($routeProvider) {
    $routeProvider.when('/', {
        templateUrl: 'partials/main.html',
        controller: mainCtrl
    })
        .when('/:catId', {
        templateUrl: 'partials/category.html',
        controller: categoryCtrl
    })
        .when('/detail/:detId', {
        templateUrl: 'partials/detail.html',
        controller: detailsCtrl
    })
        .otherwise({
        redirectTo: '/'
    });

}]);

我希望有人可以帮助我并解释发生了什么我错过了什么。

提前致谢。

编辑:

当我添加时

 .....
 config(['$routeProvider','$locationProvider', function($routeProvider. $locationProvider){
 .......
 $locationProvider.html5Mode(true);

路由在 Chrome 和 firefox 中完全中断

_localhost/angular/#%2Flink_

当我删除 "#%2F" 并重新加载页面时,我得到一个 404 作为返回 当我按退格键时,网站加载正确!

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    请确保您的浏览器支持HTML5。对于不支持 HTML5 历史 API 的浏览器,AngularJS 将自动回退到 hasbang URL,因此无法使用 "remove" hash(#)

    【讨论】:

    • 它的 chrome v28 所以应该支持它吧?我改变了: .... $routeProvider.when('/', {... to .... $routeProvider.when('/', {... 现在它可以工作了吗?有人可以告诉我为什么吗?
    • 所以你的代码 $locationProvider.html5Mode(true) 现在为你工作了。请指出您所做的更改,以便更清楚地工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 2016-04-13
    • 2020-04-04
    • 1970-01-01
    相关资源
    最近更新 更多