我遇到了谷歌网站管理员工具和我的角度应用程序的问题。 由于某种原因,页面标题没有显示。 我正在使用ui-router,所以我设置了它:
<title ng-bind="'Page title | ' + $state.current.data.pageTitle"></title>
在我的索引页面中,然后我的应用程序有了这个:
.run(['$rootScope', '$state', 'AccountService', 'SettingsService', function ($rootScope, $state, account, settings) {
// Apply the state to the rootscope
$rootScope.$state = $state;
}
在定义状态时,我的数据集如下:
$stateProvider.state('home', {
url: "/",
templateUrl: '/assets/tpl/home.tpl.html',
controller: 'HomeController',
controllerAs: 'controller',
data: {
pageTitle: 'Home'
}
})
但这不是通过网站管理员工具获取的。所以我有一个谷歌周围有人有同样的问题,他们通过创建服务解决了它。 所以我创建了这样的服务:
.service('PageTitle', function() {
var title = 'Kudos Sports';
return {
title: function() {
return title;
},
setTitle: function(newTitle) {
title = newTitle;
}
};
})
然后在我的索引页面上,我这样做了:
<!-- Required to make our application crawlable -->
<meta name="fragment" content="!" />
<meta charset="utf-8" />
<title ng-bind="controller.title()"></title>
<!-- Removed for brevity -->
我的HeadController,看起来像这样:
.controller(&#39; HeadController&#39;,[&#39; PageTitle&#39;,function(service){ var self = this;
self.title = service.title;
}]);;
然后在我的州宣言中,我这样做了:
$stateProvider.state('home', {
url: "/",
templateUrl: '/assets/tpl/home.tpl.html',
controller: 'HomeController',
controllerAs: 'controller',
resolve: {
pageTitle: ['PageTitle', function (service) {
service.setTitle('Kudos Sports - Home');
}]
}
})
几周后,我已经检查过,我的页面标题仍未被查看。
有谁知道如何解决这个问题?
答案 0 :(得分:0)
AngualrJS已过时,因此我不建议您使用它,但是如果您使用过它,请更新到更高的角度版本或REact或Veu。仍然是SEO的修复程序,用于更新元标记。
<update-link rel="canonical" href="{{url}}"></update-link>
<update-meta name="keywords" content="{{keywords}}"></update-meta>
<update-meta name="description" content="{{description}}"></update-meta>
<update-meta name="twitter:title" content="{{title}}"></update-meta>
<update-meta name="twitter:description" content="{{description}}"></update-meta>
<update-meta name="twitter:image" content="{{image}}"></update-meta>