当前位置: 首页 > 编程笔记 >

Angular设置title信息解决SEO方面存在问题

朱俊雅
2023-03-14
本文向大家介绍Angular设置title信息解决SEO方面存在问题,包括了Angular设置title信息解决SEO方面存在问题的使用技巧和注意事项,需要的朋友参考一下

Javascript框架在处理seo方面存在问题,因为爬虫在检索seo信息的时候会读不了js给其赋的值,导致搜索引擎收录不了或者收录了无效的信息,比如收录的可能是title={{title}}这样的,下面先说如何在路由跳转时修改页面的seo信息,现在spa跳转一般用route-ui了,就以这个为基础讲解,在app.js配置项state中加入title信息,如下:data:{ pageTitle:'user title'}

.state('index.user', {
url: '/user',
views: {
'content@index': {
templateUrl: 'templateHtml/user/user.html',
controller: 'userCtrl'
}
},
data:{
pageTitle:'user title'
}
})
.state('index.user.a', {
url: '/a',
templateUrl: 'templateHtml/user/a.html',
data:{
pageTitle:'user a title'
}
})
.state('index.user.b', {
url: '/b',
templateUrl: 'templateHtml/user/b.html',
data:{
pageTitle:'user b title'
}
})

然后使用通过监听$stateChangeSuccess来修改页面title:

app.directive('title', ['$rootScope', '$timeout',
function($rootScope, $timeout) {
return {
link: function() {
var listener = function(event, toState) {
console.log(toState);
$timeout(function() {
$rootScope.title = (toState.data && toState.data.pageTitle)
? toState.data.pageTitle
: 'Default title';
$rootScope.metakeywords="this is keywords"
});
};
$rootScope.$on('$stateChangeSuccess', listener);
}
};
}
]);

这里赋值是通过获取当前state中设置的title,也就是这里toState对象的值,当我们打印这个toState时就会发现:

这里是获取的已经设置好的data中pageTitle的值,如果不想写在state里或者写死,可以传state中的唯一标示,配合后台接口,将查询的title渲染到页面;同样meta标签如keywords、description可以在此时一同绑定;

上面说到javascript框架在seo方面存在短板,应对ng的这个问题市面上也有很多方案,比如prerender,seo.js等,思想都是在页面加入表示,让爬虫在页面渲染好后才去扒数据,同时服务器上要配置些服务,服务将检测是否有对应这个URL的快照或者缓存的页面,如果存在就发给爬虫,如 果不存在,则生成快照,然后发送正确的页面给爬虫;处理起来还是要费些功夫的,所以也可以采用ng+常规的开发模式,一些重要的页面不要用这种页面渲染seo的方式,或者建立专门的seo信息页;所以在这方面感觉用ng框架做app(ionic)还是很合适的;

以上所述是小编给大家介绍的Angular设置title信息解决SEO方面存在问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍解决vant title-active-color与title-inactive-color不生效问题,包括了解决vant title-active-color与title-inactive-color不生效问题的使用技巧和注意事项,需要的朋友参考一下 1、创建vue项目 2、使用vant组件 npm install vant --S 全局引用时在main.js引入 假如你引入之后发

  • 本文向大家介绍ios设备中angularjs无法改变页面title的解决方法,包括了ios设备中angularjs无法改变页面title的解决方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: // 代码放在app.js中,代码备份下,预防下次遇到同样的问题。 以上这篇ios设备中angularjs无法改变页面title的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大

  • 本文向大家介绍解决微信授权回调页面域名只能设置一个的问题,包括了解决微信授权回调页面域名只能设置一个的问题的使用技巧和注意事项,需要的朋友参考一下 最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_proxy,详细的介绍请往下阅读。 在做项目集成微信登录以及微信支付的时候,都需要进行用户授权。这个授权的流程可以简单描述为: 1. 用户从我们的应用

  • 此功能需要安装信息模型后方可显示使用 一、本功能说明 本功能主要是针对信息模型功能参数的相关配置 二、具体说明 1.信息模型所管理的联动菜单ID,详情查看菜单管理 2.前台数据查询结果的缓存时间,0为不缓存,推荐配置为60。 3.设置为“是”则前台联系方式以图片形式显示。开启此功能可以防止您的网站用户信息被采集,如图: 4.设置为“是”则启用多城市版分类信息 5.此处填写您在栏目中添加的如“房产”

  • 商家如何配置网站基础信息 一、网站设置 打开后台-设置-基础设置-网站设置 1、网站信息设置 在首页展示 注:网站名称修改后得重新登录才生效,官网网址就和一级域名连接。 2、网址联系设置 在首页底部显示服务热线 3、备案与统计设置 商城第三方统计代码,用于接入客服等应用的脚本代码 二、运营 打开后台-设置-基础设置-运营 1.网站访问模式:兼容模式和pathinfo模式兼容模式 注意:伪静态只支持

  • 本文向大家介绍MYSQL设置触发器权限问题的解决方法,包括了MYSQL设置触发器权限问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了MYSQL设置触发器权限的方法,针对权限错误的情况非常实用。具体分析如下: mysql导入数据提示没有SUPER Privilege权限处理,如下所示: 导入function 、 trigger 到 MySQL database,报错: 原因: