vue-cli3.x spa项目需要做seo优化,看了下文档,对于不熟悉nodejs的我来说很头疼,于是乎在github找了大神的demo,附上链接https://github.com/EDiaos/vue-cli3-ssr-project 先熟悉链接项目的demo
开始项目改造。。。
先把package的包复制进demo的工程,
然后是进行router文件和store文件。main.js的改动,确保工程能启动。
这一步遇到问题了,在store.js用到了localstoreage,因为ssr在服务端运行,所以不存在localstoreage,
解决办法:
if(typeof localStorage !== 'undefined')
localStorage.setItem('token',data)
然后是数据获取的改造,参考demo工程。或者查看官方文档vue ssr数据预取存储容器
(ssr的数据获取调用需要在组件的serverPrefetch的方法,详情看demo)
最后,demo工程做了可配置项,需要ssr的页面需要在server/ssr-page-config.js进行配置(页面url的正则)。
服务端部署:页面服务81端口nodejs跑,后台接口82端口java服务,
整个项目用ngnix,调用接口利用ngnix反向代理附上nngnix简单的配置
server {
listen 80;
server_name localhost;
location /api { ##java服务
proxy_pass http://xxx.cn/;
proxy_set_header Host xxx.cn:82;
proxy_set_header Origin http://xxx.cn:82;
}
location / { ##node服务
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://xxx:81;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}