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


Posted in Javascript onAugust 19, 2016

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时就会发现:

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

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

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

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

Javascript 相关文章推荐
Javascript 同时提交多个Web表单的方法
Feb 19 Javascript
javascript修改IMG标签的src问题
Mar 28 Javascript
js获取滚动距离的方法
May 30 Javascript
JavaScript判断数组是否包含指定元素的方法
Jul 01 Javascript
javascript基础知识
Jun 07 Javascript
js仿新浪微博消息发布功能
Feb 17 Javascript
React学习笔记之列表渲染示例详解
Aug 22 Javascript
JS实现的邮箱提示补全效果示例
Jan 30 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
Jan 31 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
Dec 24 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
Apr 17 Javascript
javascript 模块依赖管理的本质深入详解
Apr 30 Javascript
js仿腾讯QQ的web登陆界面
Aug 19 #Javascript
基于WebUploader的文件上传js插件
Aug 19 #Javascript
JS获取checkbox的个数简单实例
Aug 19 #Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
Aug 19 #Javascript
jQuery搜索框效果实现代码(百度关键词联想)
Feb 25 #Javascript
浅谈js中test()函数在正则中的使用
Aug 19 #Javascript
javascript设计模式Constructor(构造器)模式
Aug 19 #Javascript
You might like
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
php计算年龄精准到年月日
2015/11/17 PHP
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
jQuery制作图片旋转效果
2017/02/02 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
详解redux异步操作实践
2018/08/15 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
使用python装饰器验证配置文件示例
2014/02/24 Python
Python实现爬取逐浪小说的方法
2015/07/07 Python
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
python实现烟花小程序
2019/01/30 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
会计学应届毕业生推荐信
2013/11/04 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
药店采购员岗位职责
2014/09/30 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
就业意向协议书
2015/01/29 职场文书
公司财务部岗位职责
2015/04/14 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
演讲开头怎么书写?
2019/08/06 职场文书