JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – Durandal 2.0路由器可以替换###!为ajax网页抓取目的?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
可以替换Durandal 2.0中的默认路由器行为来替换默认路由,例如:’mysite.com/#/myroute’与’mysite.com/#!/myroute’的原因是为了google蜘蛛检测页面是可以爬虫的,我需要在url中插入一个hashbang,而不仅仅是一个主题标签.任何帮助将不胜感激.

谢谢!

解决方法

据我所知,在Durandal 2.0中,你无法做到这一点.路由器和历史插件不支持这一点,这不是一个简单的修复,因为代码中有一些依赖#的地方.

但是,我不认为这是您的场景中的问题.也许你需要改变处理应用程序可抓取的要求的方法.

您仍然可以使用#by在应用程序的主HTML中指定元片段类型来使您的应用程序SEO兼容:

<meta name="fragment" content="!">

所以你告诉谷歌你的链接没有#!但应用程序正在使用JavaScript渲染.然后来自爬网程序的请求将包括
?_escaped_fragment_.

所以在你的应用程序你将使用:

@H_60_12@mysite.com/#myroute

履带将要求:

@H_60_12@mysite.com?_escaped_fragment_=myroute

检查Google的documentation on crawling的第3部分,了解更多有关元片段标签的信息.

建议

如果要充分利用此功能,我建议在Durandal 2.0中使用pushState,通过激活路由器:

router.activate({ pushState: true } );

并且还包括元片段标签.

<meta name="fragment" content="!">

如果使用pushState,你应该虑的事情:

>只有当您不打算支持旧版浏览器时,请使用pushState.
>您需要使服务器端pushState准备就绪,这意味着当mysite.com/myroutes请求服务器时,可以返回相同的JS应用程序,让客户端处理查询字符串参数.例如,如果您使用ASP.NET,可以使用IIS URL重写来实现.这个话题有一个很好的blog post.

大佬总结

以上是大佬教程为你收集整理的javascript – Durandal 2.0路由器可以替换###!为ajax网页抓取目的?全部内容,希望文章能够帮你解决javascript – Durandal 2.0路由器可以替换###!为ajax网页抓取目的?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。