本文建立在你已经在windows7上已经配好了nginx的前提下进行!!! 如果没有请移步至:https://www.cnblogs.com/jack1208-rose0203/p/5739765.html

因为编者已经为该项目已经实现了VUE接口统一管理,所以接下来的讲解是在这个接口统一管理的环境下进行的

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

关于VUE接口统一管理,可以参照这里:

参照1:https://www.cnblogs.com/yingyigongzi/p/10863477.html

参照2:https://www.codercto.com/a/53432.html

我的项目,

在开发环境中,关于接口有三个步骤:

1.在config/index.js中设置接口代理

vue项目打包 部署nginx服务器 访问远程接口 本地json 跨域问题 随笔 第1张

2.在navigationTree.js中设置接口的统一管理 (navigationTree.js怎么来的,请参考我上文说的两篇参考文章链接)

vue项目打包 部署nginx服务器 访问远程接口 本地json 跨域问题 随笔 第2张

3.在组件中调用这个接口

vue项目打包 部署nginx服务器 访问远程接口 本地json 跨域问题 随笔 第3张

调用方法

vue项目打包 部署nginx服务器 访问远程接口 本地json 跨域问题 随笔 第4张

开发这样设置,就可以解决跨域,并且统一管理接口,能拿到数据了

生产环境

开发结束后就要打包,上线

步骤

1.nginx安装目录下的conf/nginx.conf文件进行配置

vue项目打包 部署nginx服务器 访问远程接口 本地json 跨域问题 随笔 第5张

我把这部分代码贴出来

server {
        listen       8081;  #前端服务启动后,访问用的端口
        server_name  localhost; #访问前端服务的IP

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

	# 匹配以/nginxGetTreeListForSoilByRegion/开头的请求
        location ^~ /nginxGetTreeListForSoilByRegion/ {
            proxy_pass  你自己的真实接口地址;
        }

	location / {
            root   D:/peixun/nginx-1.16.0/html/dist;  #前端dist文件夹的绝对路径
	    index  index.html index.htm;  
        }
#剩下代码都一样,略

 2.去VUE项目的config/index.js 里,设置打包上线的接口配置,配合nginx已经设置好的代理接口名(我这里用nginx代理的接口名是nginxGetTreeListForSoilByRegion)

 vue项目打包 部署nginx服务器 访问远程接口 本地json 跨域问题 随笔 第6张

3.去navigationTree.js里,把之前开发用的接口配置,也改成打包上线用的配置

vue项目打包 部署nginx服务器 访问远程接口 本地json 跨域问题 随笔 第7张

以上3步设置好后,在该VUE项目的路径下,执行cmd的npm run build

将得到的dist文件夹,放入nginx安装目录的html文件夹内,即可

 //----------------------------------------------------------------访问本地json数据时-----------------------------------------------------------------------------------

我们在开发时,将本地json文件放入static文件夹内,打包的时候,该json文件也会自动打包进dist里面的static文件夹内

访问本地json,只要修改nginx里的conf/nginx.conf文件即可

vue项目打包 部署nginx服务器 访问远程接口 本地json 跨域问题 随笔 第8张

我把代码贴出来

 server {
        listen       8081;  #前端服务启动后,访问用的端口
        server_name  localhost; #访问前端服务的IP

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

	# 匹配以/nginxGetTreeListForSoilByRegion/开头的请求
        location ^~ /nginxGetTreeListForSoilByRegion/ {
	    # 访问远程接口数据
	    # proxy_pass   你远程接口的地址
	    # 访问本地json  http://localhost:8081 代表着你项目在服务器的地址,我这边就是D:\peixun\nginx-1.16.0\html\dist,这是在root处设置的
            proxy_pass   http://localhost:8081/static/testData/GetTreeListForSoilByRegion.json;
        }

	location / {
            root   D:/peixun/nginx-1.16.0/html/dist;  #前端dist文件夹的绝对路径  这个就等同于 http://localhost 至于端口号8081,则是在listen处设置的
	    index  index.html index.htm;  
        }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄