前几天有一位新浪四川的朋友通过我的一篇 Prerender + vuejs SEO最佳实践 博文找到我
按照 Prerender
官方 和 我的实战经验 在 window
平台上搭建了一个 Prerender
渲染服务 不过区别在于
- 不是基于
Vuejs
的应用 而是Angular
(不过这不重要Prerender
官方宣传是为前后端分离的应用做SEO
的 不限定平台和语言) - 应用不是单页的 即入口是多个的
问题分析
- 通过检查已经安装好的
Prerender
服务 发现是部署成功的 通过使用已经部署成功的
Prerender
服务 测试应用中的摸个页面 结果如预测的一样 成功渲染(即应用处理部分是正常的)Java(Spring)
中间件并没有正确的配置 或者配置了并未生效(问题所在)
解决方案
由于我并不熟悉Java
所以采用了Nginx
中间件的方案(我所熟悉的)
并且由于刚好该团队采用了前后端分离的形式 但是还是用Tomcat处理静态文件的 我刚好换成用性能更佳的Nginx
但是用了 Prerender
官方的 Nginx
中间件发现只有首页是正常的 于是经过了几轮改造升级 变成如下配置
|
|
具体改动
- 去掉了官方默认只有一个入口(
index.html
)的限制 改成不限制入口(任意HTML文件匹配均生效) - 新增了几个国内的爬虫标志(360 搜狗)
- 增加了未匹配文件自动转发至
Tomcat
处理(该系统上传文件是在另一个Tomcat
应用目录中的 所以有部分静态文件是需要转发的 于是就写了一个 未匹配文件/API都转发至应用后端所绑定的端口)
至此 改造完成 多页动静分离SEO处理方案完美诞生