配置完成后:$locationProvider.html5Mode(true).hashPrefix('!')
当我在浏览器(chrome)上输入url:www.example.com/search
并按Enter键时,它会变为:www.example.com/#%2Fsearch
然后转到主页。
当我点击<a href="/search" />
之类的链接然后点击它的工作。
如果我删除.hashPrefix('!')
,那么也可以正常工作。
但我需要hashPrefix('!')
任何想法我怎么能解决这个问题?
答案 0 :(得分:5)
这发生在我身上,因为我的所有链接上都有一个“#”,就像在www.example.com/search/#/xxx/yyy
中一样。点击后,您将转到www.example.com/search/#%2Fxxx%2Fyyy
。所以我把它们删除了,问题就消失了。
答案 1 :(得分:5)
我知道这是一个老帖子,问题已经解决了。我对我正在使用的应用程序遇到了同样的问题,但就我而言,我们应该保留'#'。所以,我所做的就是添加以下内容:
$locationProvider.html5Mode(false).hashPrefix('');
如果你还没有修改你的.config参数,请不要忘记,如下所示:
.config(function($routeProvider, $locationProvider)
答案 2 :(得分:-1)
Angular.module('app', ['ngRoute']).config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
$routeProvider.when("/", {
templateUrl : "templates/home.html"
}).when('/register',{
templateUrl : "http://localhost:3000/templates/register.html"
})
// use the HTML5 History API
});;