Angular技术库
  • 简介
  • 研究热点
    • 单页面登录
    • 单页面服务器渲染
  • 项目实战
    • 目录结构
    • 模块开发流程
    • 公共模块编辑
    • UI使用
    • 工具库
      • util模块
      • filter模块
    • 表单验证
  • 整体框架
    • 环境搭建
      • Windows
      • MAC Linux
    • 示例项目
    • 开发调试
      • 编译JS
      • 编译CSS
      • 编译HTML
      • 编译Bower
      • 服务器启动
      • 与后端服务通讯
    • Gulp文档
      • Gulp API
      • 插件列表
      • Gulp构建
    • Gulp文档
    • 示例项目
  • Angular文档
    • 指令
    • 引导
    • 单页面
    • 基于requireJS和angularJS的前端技术架构
    • 数据共享
    • 模块加载
    • 事件循环
  • SASS文档
    • SASS特性
  • ES6文档
    • ECMAScript前导
    • ECMAScript6特性介绍
    • ES6特性筛选
  • JavaScript文档
    • 匿名函数定义
    • Function
      • 原生prototype
      • 自定义prototype
  • RequireJS
  • Node文档
  • 架构师
  • 时间轴
    • 2016-07-13
    • 2016-06-21
    • 2016-06-14
    • 2016-06-07
    • 2016-05-31
Powered by GitBook
On this page
  • 线上环境
  • 开发环境
  • 采取方案
  • gulp-connect-reproxy
  1. 整体框架
  2. 开发调试

与后端服务通讯

由于采用了前后端完全分离方案,目前前端开发环境是一个单独的环境,实际环境需要和服务器进行通讯,需要解决浏览器跨域问题,下面是线上环境和开发环境的解决方案。

线上环境

  1. 采用同一域名,将前端项目部署到服务器项目的目录下

  2. 采用不同域名,设置域名白名单

  3. 项目单独部署,采用统一域名,使用反向代理服务器进行转发(如Nginx) 【最佳】

开发环境

  1. 将前端项目部署到服务器项目的目录下

  2. 项目单独运行,保证统一域名,使用反向代理服务器进行转发(如Nginx)

  3. 以前端服务器为主,后端服务经由前端服务器转发 【最佳】

采取方案

线上环境为保证服务器安全、减轻服务器压力,采用反向代理服务器转发方式,需要配置Nginx服务器; 开发环境为保证开发效率,减轻开发工作量,采用前端服务器转发方式,需要启动静态服务器、配置转发服务器。

下面是开发环境中,静态服务器的配置和后端通讯解决方案。

gulp-connect-reproxy

var gulp = require("gulp");
var $ = require("gulp-load-plugins")();

/**
 * 启动静态服务器和代理服务器
 */
gulp.task("serve:start", function(){
    $.connect.server({
        root : [config.paths.buildTmp, config.paths.build],
        port : 9000,
        livereload : true,

        /*
         * 转发服务器中间件,此处配置为转发所有.do结尾的请求
         */
        middleware : function(connect, options){
            options.rule = [/.do/];
            options.server = "127.0.0.1:8080";
            return [new $.connectReproxy(options)];
        }
    });
    serveStarted = true;
})
/*
 * 转发服务器中间件,此处配置为转发所有.do结尾的请求
 */
middleware : function(connect, options){
    options.rule = [/.do/];
    options.server = "127.0.0.1:8080";
    return [new $.connectReproxy(options)];
}
Previous服务器启动NextGulp文档

Last updated 7 years ago

使用插件启动代理服务器,该插件依托于

所有.do结尾的请求,都会转发到,关键代码:

gulp-connect-reproxy
gulp-connect
127.0.0.1:8080