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 相关文章推荐
Array对象方法参考
Oct 03 Javascript
用 Javascript 验证表单(form)中的单选(radio)值
Sep 08 Javascript
JS小框架 fly javascript framework
Nov 26 Javascript
Jquery 高亮显示文本中重要的关键字
Dec 24 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
Jun 20 Javascript
JS实现点击下载的小例子
Jul 10 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
Feb 18 Javascript
JavaScript实现通过select标签跳转网页的方法
Sep 29 Javascript
JS计算两个时间相差分钟数的方法示例
Jan 10 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
如何优雅地在vue中添加权限控制示例详解
Mar 07 Javascript
Node.js学习之内置模块fs用法示例
Jan 22 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
php生成xml简单实例代码
2009/12/16 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
javascript 函数调用的对象和方法
2010/07/01 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
Python子类继承父类构造函数详解
2019/02/19 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
Django models filter筛选条件详解
2020/03/16 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
如何在pycharm中安装第三方包
2020/10/27 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
介绍java中初始化块的使用
2012/09/11 面试题
我的网上商城创业计划书
2013/12/26 职场文书
留学推荐信写作指南
2014/01/25 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
入党现实表现材料
2014/12/23 职场文书
小学班主任自我评价
2015/03/11 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS