这两年自己写了几个WEB项目,前端都是用的vue框架,后台大部分用的nodejs,也有用的spring的;但是他们有一个共同点:都是SPA单页面应用,并且使用HEXO框架在二级目录搭建了一个静态博客。
主要表现是vue应用收录了首页,而二级页面却不被收录,但是!!!重点来了,hexo搭建在二级目录的博客文章是有小部分可以被收录的,所以我觉得问题其实还是出在vue单页应用上面,百度很难收录这种单页面应用的内页,而这几个web项目在谷歌和必应的收录状况是非常好的,可能他们技术比较好,不在乎你的数据是不是ajax动态获取的,也不在乎你的页面是不是spa。
在此期间,为了解决vue主项目内页不被收录这个问题,思考过很多,包括首先用了预渲染插件,这个就不解释了网上很多教程,主要就是把一部分页面提前加载一遍并保存,等爬虫爬取的时候,就把这个保存的静态页面直接发给爬虫,这样爬虫就能爬到vue项目的内容了,最终预渲染插件在项目中使用了大半年吧,依然没有任何改善,还是不收录vue项目内页。后来想着是否要进行大改造,使用nuxt来服务端渲染,但是说时候感觉成本太高适用性不高,而且明明是前后端分离的项目,最后转了一圈又回到了服务端来渲染,岂不是很扯淡,早知道这样还不如直接在后台用模板引擎写算啦,各方面的效率估计还更高。