我知道你们会说“这是复制的”,但这对我不起作用。
我正在做完全相同的事情,下面是发生的事情。
这是我的配置代码:
portfolioApp.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/home', {
controller: 'portfolioController',
templateUrl: 'partials/home.htm'
})
.otherwise({redirectTo: '/home'});
if(window.history && window.history.pushState){
$locationProvider.html5Mode(true);
}
});
不带locationProvider并将路径设置为"/“而不是"/home”的URL将为:
http://localhost:8080/portfolio/#/
好的,我想去掉标签和"portfolio“路径,这样它就会:
http://localhost:8080/home
使用我发布的配置,它可以做到这一点(我第一次刷新时)。但是会发生什么呢?如果我用新路径再次刷新页面...我得到了一个404 Tomcat错误。
在第一次刷新时,我写了localhost:8080/portfolio,路径被转换为"/home",我在控制台中得到一个错误,说"partials/home.htm“找不到404。
因此,无论哪种方式,它都无法读取我的部分,然后当我刷新时,一切都会崩溃。
我该如何解决这个问题呢?我做错了什么?
发布于 2013-12-22 14:23:44
确保在实现模块的HTML文档头中包含这些脚本。下面提供的两个用于实现最新版本的angular以及最新版本的angular路由脚本:
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular-route.js"></script>
确保您将ngRoute注入到模块中,下面是我的一个示例:
angular.module('controller', ['ngRoute','ngResource', 'ngCookies', 'ngSanitize'])
以下是我的配置块的示例,请确保同时注入routeProvider和locationProvider:
.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider){
$routeProvider
.when('/', {
templateUrl: '../partials/member.php',
controller: 'Member',
access: 'member'
})
.when('/leaderboard', {
templateUrl: '../partials/leaderboard.html',
controller: 'Leaderboard',
access: 'member'
})
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
}])
如果你做了所有这些工作,但仍然不能工作,那就发布你的代码的插入器。谢谢。
https://stackoverflow.com/questions/20726481
复制相似问题