现在有很多应用,尤其是后台管控应用都是前端在控制路由,我在之前公司开发这些后台应用的时候,都是用前端应用webpack启动devServer,针对后端的api请求采用webpack的反向代理功能将这部分请求打到对应的后端服务器上。后面到部署的时候,将前端代码部署到nginx上,后端的请求通过nginx反向代理到后端的server上。

这么做,甚至对于一个公司里的项目来说都是没有啥问题的,但是其实弊端也是很明显的。

因为前端这部分的应用处理,相比于后端处理请求来说,压根谈不上对服务器的压力,因为大部分的渲染都是在客户端的,所以如果因为部署这些前端代码申请几台机器是蛮浪费资源的。而其实这些前端代码在编译后,完全是静态的,我们可以直接部署到cdn上。而在访问的时候通过后端控制路由,便也能完美的解决这个问题。

我个人博客在部署的时候,将前端的静态资源部署上服务器后,通过nginx控制路由,找到前端应用。也避免了对后端应用的访问,而需要注意的就是路由的一些控制以及history路由的处理。

说的有点乱。意思大概就是这么个意思。


location ~ /admin/ {                                                                              

 root  /Users/user/MySpace/nbook-admin;

 index index.html;

 include /Users/user/Myspace/nbook-admin/admin/.htaccess;

}

.htaccess


if (!-e $request_filename){

  rewrite ^/(.*)$ /admin/index.html?_ca_=$1 last;

}