我目前正在尝试通过实现_escaped_fragment_-scheme(Google Docs)使角度应用程序可索引。我知道它已被弃用,但据我所知,经过一些研究和实验,它仍然是最安全的选择。
该方案要求使用hashbang #!
作为“真实URI”的分隔符。以及URI的角度路由部分,即
http://www.someuri.com/#!/dashboard
目前我使用默认的#:
http://www.someuri.com/#/dashboard
我知道如何更改路由以使用'#!':
angular.module('myApp').config([
'$locationProvider',
function($locationProvider) {
$locationProvider.hashPrefix('!');
}
]);
然而,这显然打破了旧的'链接(如http://www.someuri.com/#/dashboard)。
如何正确路由两种URI格式?
我试图像这样配置路由:
app.config(function($urlRouterProvider) {
$urlRouterProvider
.when('!/imprint', '/imprint')
.when('!/blog', '/blog')
.when('!/blog/{blogPostId}', '/blog/{blogPostId}');
});
但它不起作用,我也不能用感叹号定义状态作为路径URI的第一个字符。
答案 0 :(得分:0)
你必须删除!从$locationProvider.hashPrefix('!');
到$locationProvider.hashPrefix('');
并添加$locationProvider.html5Mode(true);
并在头部sectoin <base href"/"/>
的索引页面