Link 到“/”仅在某些浏览器中有效

Link to "/" works in some browsers only

此 link 不适用于我的 angularjs 单页应用程序中的所有浏览器。

<a href="/">homepage</a>

根据浏览器的不同,url 会有所不同。在某些浏览器中,url 以尾随“/#”结尾,而其他浏览器以“/#/”结尾,例如“http://localhost/#" and "http://localhost/#/”。这意味着在非 IE 浏览器中,以 /# 结尾的请求无法加载 ViewA

这是我的路线提供商:

mainApp.config(["$routeProvider",
function ($routeProvider) {
    $routeProvider
        .when("/", {
            templateUrl: "Views/ViewA.html"
        })
        .when("/home", {
            templateUrl: "Views/ViewB.html"
        })
        .otherwise({
            redirectTo: "/"
        });
}]);

有没有办法让浏览器的行为相同?参考图书馆? 我唯一的参考呃: angular.js angular-route.js

我想你的主播应该是:

<a href="/#/">homepage</a>

我建议你看看类似问题的答案here

主要取决于angular你想使用的路由模式:

  • Hashbang 模式;
  • HTML5模式;
  • HTML5 模式下的 Hashbang

添加 locationProvider 并将 html5mode 设置为 true,似乎解决了我的问题

mainApp.config(["$locationProvider", "$routeProvider",
function ($locationProvider, $routeProvider) {
    $locationProvider.html5Mode(true);
    $routeProvider
        .when("/", {
            templateUrl: "Views/ViewA.html"
        })
        .when("/home", {
            templateUrl: "Views/ViewB.html"
        })
        .otherwise({
            redirectTo: "/"
        });
}]);