我使用mvc c#发布了一个带有角度和AJAX调用的网站来创建一些客户端页面。我的一个链接看起来像这样:
www.website.com/App#/Index
我正在尝试设置一个hasbang解决方案,以使我的网站可以抓取。我成功地创建了hashbang设置,所以现在一个工作链接将如下所示:
www.website.com/App#!/Index
现在的问题是我在Facebook上的所有链接都不包含爆炸(!),因此这些链接已经死了。 如何从没有hashbang的第一个链接重定向到hashbang的链接?
我目前的路线:
app.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(false).hashPrefix('!');
$routeProvider
.when('/Index', {
templateUrl: '/Apps/Modules/IndexPublicAngular/Index.html', controller: 'IndexPublicController'
});
}]);
答案 0 :(得分:2)
我遇到了类似的问题,你需要使用hashbang而不是hash。 我不得不为此提出一个快速而肮脏的解决方案:
$rootScope.$watch(function () {
return window.location.hash;
}, function (value) {
if (value.indexOf('#!#') == 0) {
setTimeout(function() {
window.location.hash = value.replace('#!#','#!');
})
}
});
可能有一个更好的解决方案,但我没有深入调查,因为这只是书签网址的临时补丁等。请记住,因为这只会在角度已触及网址后触发,& #39;#'已被转换为#!#!#'通过角度。