开发公司官网,需要做多语言,又要有SEO,且使用Vue开发。首先想到的是自己搭建Vue SSR,但做官网没有必要搞这么麻烦,遂想到了使用prerender-spa-plugin来做预渲染,vue-i18n来做多语言,于是有了以下大致代码:
prerender-spa-plugin部分
1 | // main.js |
1 | // webpack.config.js |
vue-i18n部分
1 | // main.js |
运行之后却发现,切换到英文版本,再刷新,页面总会先显示中文,再快速闪回英文。
排查原因之后发现,prerender-spa-plugin在使用Headless浏览器生成页面结构时,页面语言为中文,用户访问英文版网站时,返回的html内容为中文,js执行后会将中文再替换为英文。
试了一些方法也没有很好的解决这个问题。
虽然去除prerender-spa-plugin插件可以解决这个问题,但是也就失去了SEO。