环境配置
说明
针对不同开发人群,可以使用不同的方案,如果你只需要运行而不是修改前端代码,只需要参考part1的内容, 如果你需要修改前端项目和发布,请参考part2的内容。
part1 只配置运行环境
注:测试环境和正式环境采用的此模式。
本项目的页面打包后将所有文件压缩成source.zip
,并会被拷贝到 qianxiang-v1-rms\webcontent\spa
目录下,
然后经过上传下载后,其他人员来解压这个source.zip
文件而运行新的代码。
由于老项目是jsp(本地是8806端口)页面,本项目是单页面,两种模式都存在,我们采用了nginx
来做转发。
具体原理是: 1.nginx启动一个服务器,客户端访问该路径。 2.nginx判断特定的请求1,会认定请求为访问单页面,将请求识别并返回静态资源。` 3.nginx判断特定的请求2,会认定请求为单页面访问的api,将请求代理到jsp项目(localhost:8806)。 4.nginx判断特定的请求3,会认定请求为一般请求,直接转发到jsp项目(localhost:8806)。
因此本地需要装一个nginx软件,这里推荐 Visual Nmp
软件。推荐版本>7.0
, 64位
。
安装好之后,使用该软件来建立一个网站,添加一段nginx.conf
的配置如下:
server {
##SiteName dev.rms.com # 下面配置的域名
listen *:80;
server_name dev.rms.com;
#open gzip
gzip on;
gzip_types text/xml text/css text/plain text/javascript application/javascript application/x-javascript;
location / {
proxy_pass http://127.0.0.1:8806/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
}
location =/ {
proxy_pass http://127.0.0.1:8806/home/index;
}
location ~ /spa/static/(.*) { #识别spa/static前缀的路径,是spa项目的资源路径
alias H:/qianxiang/web/qianxiang-v1-rms/WebContent/page/static/$1;
}
location /spa #识别spa前缀的路径
{
root "H:/qianxiang/web/qianxiang-v1-rms/WebContent/page";
try_files $uri $uri/ /index.html last;
}
location ^~ /api/ { #识别api前缀api,并代理,spa项目专用
add_header 'Access-Control-Allow-Origin' '*';
proxy_pass http://127.0.0.1:8806/;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
我们还需要像host文件添加一个host规则:
127.0.0.1 dev.rms.com
重新启动nginx, 然后启动jsp项目,解压source.zip
。
在浏览器输入下面的链接即可:
http://dev.rms.com/home/index
part2 配置开发环境
part1部分的环境运行的是打包后的文件,是没办法修改单页面的,如果你需要开发和修改单页面,你需要安装开发环境。
开发环境只需要启动单页面的开发环境,使用开发代理api到jsp项目。
目前单页面开发端口是8033
, jsp接口的端口是8806
。
具体原理是:
- 启动jsp项目(端口8806)和单页面(端口8033)项目。
- 使用
fiddler
软件,将部分8806端口请求代理到8033端口,这样浏览器只用输入8806端口,浏览器会认定是一个网站,共享存储。 - 具体的识别规则是:
1)请求连接含
spa
的就转到8033. 2) 请求连接含api
或者newApi
是单页面的请求,也转发到8003, 走单页面服务器的代理。
按照如上步骤,需要安装fiddler
软件, 安装好之后,在AutoResponder
一栏添加一个rule,分别是:
regex:^http://localhost:8806/(spa|api|newApi)/(.*)$
对应:
http://localhost:8033/$1/$2
然后勾选: Enable rules
和 Unmatched requests passthrough
两个项目。
启动jsp项目和单页面项目,打开fiddler
软件。
在浏览器输入下面的链接即可:
http://localhost:8806/home/index