Angular离线API文档安装指南

最近官方的angularjs api经常被墙,而本站的访问速度也不够理想,于是很多同学产生了把api文档“下载”到本地的需求,但是这能做到吗?可以非常肯定地说:能。下面就是步骤:

准备工作:

  1. 确保有git
  2. 确保有任意成熟的web服务器:nginx/apache/iis均可

【1.2中文版】

  1. https://github.com/jingyanjiaoliu/angular-guide-zh.git 把中文版源码clone下来:
    git clone https://github.com/jingyanjiaoliu/angular-guide-zh.git

  2. 进入angular-guide-zh目录

这时候有两种选择,静态部署和nodejs部署。
静态部署:

  1. 切换到gh-pages分支:git checkout gh-pages
  2. 在web服务器中配置一个虚拟目录,指向angular-guide-zh目录,使其能通过下列路径:http://{{your Ip or Hostname}}/ 访问到angular-guide-zh/index.html文件。

nodejs部署:

  1. 如果没在master分支,则切换回master分支:git checkout master
  2. 进入web_deploy目录
  3. 执行npm install命令
  4. 运行node server.js命令
  5. 访问`http://{{your Ip or hostname}}:3000 即可
    当然,还可以用forever之类的工具进行部署,以及用nginx进行反向代理,使用起来会更加方便。

【1.3 beta 英文版 - 静态部署】

  1. 从git@github.com:angular-cn/ng-docs-en.git把文档clone下来:git clone git@github.com:angular-cn/ng-docs-en.git
  2. 在web服务器中配置一个虚拟目录,指向刚才clone到本地的ng-docs-en目录,使其能通过下列路径http://{{your Ip or Hostname}}/ 访问到ng-docs-en/index-production.html文件。
  3. 由于使用了html5模式,所以静态部署方式下默认不支持刷新页面或从收藏的地址访问,如果要支持这一点,需要做相应的配置,以nginx为例,需要在server_name的平级新增如下指令:
    if ( $request_uri ~ ^/(api|guide) ) { 
     rewrite ^(.*)$ /index-production.html last;
    }
    
    ,也就是说把api和guide下的请求都转发到对index的请求。

完整的nginx配置如下:

      server {
        listen  80;
        server_name ng.dev.com; # 这里换成你的虚拟域名,如果不是公网域名,需要使用者到hosts表中配置一下
        if ( $request_uri ~ ^/(api|guide) ) { 
          rewrite ^(.*)$ /index-production.html last;
        }
        location / {
          root /Users/YourHome/www/docs; # 这里换成你的文档路径
          index index-production.html;
        }
    }