vue基于proxy实现服务器反向代理功能

测试时使用的时vue-cli:3.0,只在测试环境中使用,正式环境下还是需要使用nginx

在vue-config.js文件中配置

const UglifyJsPlugin = require("uglifyjs-webpack-plugin");

module.exports = {
  // 基本路径
  publicPath:"./",  // 可以设置成相对路径,这样所有的资源都会被链接为相对路径,打出来的包可以被部署在任意路径
  outputDir:"dist",  //打包时生成的生产环境构建文件的目录
  assetsDir: 'public',  // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
  devServer: {
    proxy: {
        '/api': {     //这里最好有一个 /
            target: 'http://192.168.1.109',  // 后台接口域名
            // ws: true,        //如果要代理 websockets,配置这个参数
            // secure: false,  // 如果是https接口,需要配置这个参数
            changeOrigin: true,  //是否跨域
            pathRewrite:{
                '^/api':''
            }
        }
    }
  },
  configureWebpack: {
    optimization: {
      minimizer: [
        new UglifyJsPlugin({
          uglifyOptions: {
            warnings: false,
            compress: {
              pure_funcs: ["console.log", "console.debug"], //移除console
            },
          },
        }),
      ],
    },
  },
};

在调用接口时写法

async created() {
    var {data: res} = await this.$http.post(`/wechat/parentMsglist`)
    console.log(res)
  },

建议配置axios请求根路径

import axios from 'axios'
axios.defaults.baseURL = /api'

如果出现报错,需要在package.json文件中配置

"scripts": {
    "start": "node index.js",
    "server": "nodemon index.js --ignore client"
  },
posted @ 2020-09-02 15:36  巷陌-jh  阅读(783)  评论(0编辑  收藏  举报