前端优化小技巧
1.history 模式
vue-router
默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。
不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问不存在的路由, 就会返回 404,这就不好看了。
所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。
后端配置例子:
Apache
1 2 3 4 5 6 7 8
| <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule>
|
Nginx
1 2 3 4
| location / { tryfiles $uri $uri/ /index.html; }
|
2.每次加载首页, 页面都是最新的
Nginx
1 2 3 4 5 6
| location / { if ($requestfilename ~* .*\.(?:htm|html)$) { addheader Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate"; } }
|
3.Nginx配置前端接口转发
1 2 3 4 5 6 7
| location /api/ { proxypass http://ip:3000/; proxysetheader Host $httphost; proxysetheader X-Real-IP $remoteaddr; proxysetheader REMOTE-HOST $remoteaddr; proxysetheader X-Forwarded-For $proxyaddxforwarded_for; }
|