从业过的老东家代码发布服务管理得很周全,前端只要提交代码,后端爸爸也准备好了jenkins,我等小前端打开jenkins发布页面,选择代码分支配置发布环境,一键就能将我们的代码发到测服或者正服,然而因个人原因进了小单位之后,发布环境真是相当落后。
调试功能:
产品弟弟:你本地开个测试环境,我测试一下
我:(这ok啊,我vue-cli脚手架,yarn dev分分钟给你开一个)
调试功能:(正服)
产品弟弟:你本地开个正服环境,我测试一下
我:???(这咋操作)
前端负责人:你全局npm个http-server就可以开个本地服了
我:还可以这样!
过了几天:
产品:你这本地服不给力啊,一刷新就404了;
我:(心虚)啊这,你先凑活着用,我有空给你解决一下刷新加载问题。
之前早就听闻nginx牛逼,我之前做游戏开发的时候也负责过nginx的配置,看来今儿个是个重拾这玩意的好机会(带薪学习)
话不多说,先下个nginx去,搜索引擎搜索nginx,打开官网,一顿英文咱甭管,找到download,下下一个Stable稳定windows版
解压缩后找到conf/nginx.conf,用文本编辑器(Notepad++等)打开,找到http配置下的server,第一个server是默认的打开本地html/index是一个欢迎页,咱直接跳过。
第84行开始有一段被注掉的server,咱解注之后开始配置自己的服务
server {
listen 9527;
server_name 192.168.1.38;
location / {
root D:/code/trunk/server;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
需要注意的是root里的路径,我这边试了下复制出的文件路径D:\code\trunk\server是有问题的,启动服务之后会报500,查看nginx目录下的logs/error.log发现是\trunk的\t被解释为了制表符(也叫跳格,就是键盘上的那个Tab的效果)所以我这边用了正斜杠。
而try_files $uri $uri/ /index.html;就是解决产品弟弟刷新404的问题,此处将服务不认识的url跳转到index.html至于这个路由是个啥子就交给前端代码了,这是由于vue是单页面应用而前端代码有用了history模式非hash导致的。
此处附上常用nginx命令
nginx 启动且可以查看是否有错,但是启动后本cmd窗口就没法再操作了,需要重开一个cmd窗口
start nginx 单纯的启动看不到报错,cmd窗口还可以继续操作
nginx -s reload 重载nginx.conf配置
nginx -s stop 关闭服务(关闭cmd窗口不会关闭服务,进程会一直挂在后台的,可以通过任务管理器看到)