我对使用
html5Mode
对于ngRoute,与其他人对同一事物的看法不同。以下是我的代码中最相关的部分:
(function () {
var config = function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'home/home.view.html',
controller: 'homeCtrl',
controllerAs: 'vm'
})
.when('/about', {
templateUrl: 'common/views/genericText.view.html',
controller: 'aboutCtrl',
controllerAs: 'vm'
})
.when('/location/:locationId', {
templateUrl: 'locationDetail/locationDetail.view.html',
controller: 'locationDetailCtrl',
controllerAs: 'vm'
})
.otherwise({redirectTo: '/'});
};
angular
.module('loc8r', ['ngRoute', 'ngSanitize'])
.config(['$routeProvider', '$locationProvider', config]);
})();
这一问题尤其与以下路线有关:
/location/:locationId
. 具有
HTML5模式
在上,尝试加载URI,如
http://127.0.0.1:3000/location/5a27ab691c5e0a989c0634da
结果显示空白页。奇怪的是,节点的日志输出告诉我模板和控制器都在被访问。更奇怪的是,如果我从
/位置/:locationId
只是
/:locationId
并加载URI,如
http://127.0.0.1:3000/5a27ab691c5e0a989c0634da
,则页面将加载。但唯一的办法
/位置/:locationId
工作就是离开
HTML5模式
禁用,然后转到
http://127.0.0.1:3000/#!/location/5a27ab691c5e0a989c0634da
. 但这很难看。我怎样才能
HTML5模式
在这种情况下工作?
如果需要,我可以将我最近的所有更改推送到GitHub,然后提供完整的代码。