本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/article/vue_seo_spa_new_way/
单页面做SEO自然很困难,因为所有的内容都是动态生成的,而爬虫不会去费劲抓回这些异步的数据。那么如果我做两个页面呢?
非SEO也就采用next-blogger现有的代码结构,全站Vue。
SEO页采用部分vue的方式,分块如下:
非SEO页与SEO页的跳转方式:
SEO页全部采用静态固定链接,在非SEO页跳转到SEO页之前,必须将该页面生成并发送到服务器
SEO页的生成:
技术内容与实现过程可以看使用Python jinja2和云函数做页面渲染
时间记录:
Nginx的Rewrite实现router history 刷新 无404
一个典型的Nginx的配置为
[root@test-huanqiu ~]# cat /Data/app/nginx/conf/vhosts/testwx.wangshibo.com.conf
server {
listen 80;
server_name testwx.wangshibo.com;
root /Data/app/xqsj_wx/dist;
index index.html;
access_log /var/log/testwx.log main;
location / {
try_files $uri $uri/ @router;
index index.html;
}
location @router {
rewrite ^.*$ /index.html last;
}
}
这里的rewrite规则很重要,因为既要保证服务端在刷新时返回index.html文件内容,浏览器的地址栏又不能变。在这里解释了flag标志的含义,即last
代表浏览器地址不变。在Apache中应该是PT。