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 相关文章推荐
Js切换功能的简单方法
Nov 23 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
Jan 15 Javascript
用jquery仿做发微博功能示例
Apr 18 Javascript
jQuery图片轮播实现并封装(一)
Dec 03 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
Jul 03 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
JS实现图片切换特效
Dec 23 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
Feb 25 Javascript
如何使用three.js 制作一个三维的推箱子游戏
Jul 29 Javascript
在 HTML 页面中使用 React的场景分析
Jan 18 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无限级分类方法及代码
2013/06/21 PHP
php实现zip文件解压操作
2015/11/03 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
理解javascript正则表达式
2016/03/08 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
Python实现获取命令行输出结果的方法
2017/06/10 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Python列表如何更新值
2020/05/27 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
护理专业自我鉴定
2014/01/30 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers
Redis主从复制操作和配置详情
2022/09/23 Redis