关于在线本地调试的方法,玉伯的文章《在线本地调试大观》已经分析叙述非常全面了。这里提供另外一种思路,供前端工程师们参考。我觉得可能是最简单的方式,也容易扩展。

这个思路是使用ngnix来作普通的正向代理。配置如下:

server {
    listen       8000; #监听端口,这里监听8000
    #server_name  localhost;
    resolver 8.8.8.8; #域名解析服务器
    location / { 
        #这里指定本机代码仓库的静态文件目录,这里不设置就是直接取线下服务器的文件
        root   /Users/xp/projects/meituan.www/static;
        #取消默认文档
        #index  index.html index.htm;
        #如果访问的是文件夹,就是找默认文档,代理到原地址去找
        if ($request_uri ~* \/$ ){
            proxy_pass http://$http_host;
        }
        #如果目标url对应的文件没找到,就代理到原地址去找
        if (!-e $request_filename) {
            proxy_pass http://$http_host;
        }
        #如果对应的host是CDN服务器,就代理到线下的CDN测试服务器,以下的s1是一个意思
        if ($http_host = s0.meituan.net){
            proxy_pass http://s0.xpmt.meituan.com;
        }   
        if ($http_host = s1.meituan.net){
            proxy_pass http://s1.xpmt.meituan.com;
        }   
        #如果对应的host是Combo服务器,就代理到线下的Combo服务器
        if ($http_host = c.meituan.net){
            proxy_pass http://c.xpmt.meituan.com;
        }
    }
}

浏览器如Firefox/Chrome/IE等设置代理服务器为localhost,端口为8000即可。

线下服务器使用的是Git仓库中的代码,实时调试线上页面,如果测试OK了,即可push到远程仓库立即部署上线。

TODO:

  1. Mac系统安装nginx以及相应的设置
  2. 相关代码截图演示