Vue2 Webpack Proxy与Nginx配置详解

作者:南风

时间:2026-10-25

浏览:606

本文详解Vue2+Webpack项目中的常见配置问题。涵盖ElementUI打包后图标显示异常、添加favicon图标的方法,以及基于Webpack的本地跨域代理配置。同时提供Nginx服务器部署与反向代理设置,解决生产环境接口调用问题,附带完整代码示例。

文章目录

以下是本文的核心内容,后续案例供参考。

一、项目打包后,elementUi图标显示为方框问题

解决方法如下:

需要修改build目录下的utils.js文件,在ExtractTextPlugin配置中加入publicPath: ‘…/…/’。

if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader',
        publicPath: '../../', //elementui图标显示不全问题
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }

二、如何给项目添加ico图标

具体示例如下:

一、项目打包后,elementUi图标显示为方框问题

实现步骤:

首先,将icon图片放置到项目根目录。

其次,在build目录下的webpack.dev.conf.js和webpack.prod.conf.js文件中搜索HtmlWebpackPlugin,并添加favicon: './favicon.ico’代码。

new HtmlWebpackPlugin({
      filename: 'index.html',
      template: 'index.html',
      inject: true,
      favicon: './favicon.ico'
    }),

三、proxy本地跨域配置

本项目采用vue2+webpack技术栈,因此跨域配置基于该环境进行。

// config文件=》index.js中proxyTable
proxyTable: {
      '/api': {
        target: 'http://www.baidu.com:8080', // 此处为接口的真实地址
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      },
    },

此前尝试区分开发和生产环境的接口,在target中使用了process.env.ROOT_URL,结果导致本地代理失败。后来发现该文件内无法获取process;即便这样设置也是多余的,因为项目打包后本地代理并未失效。

在接口封装文件中配置相关参数,或者在config文件下的dev.env.js文件内添加BASE_API: ‘/api’,并在baseURL配置process.env.BASE_API。

var instance = axios.create({
  baseURL: '/api', //接口统一域名
  withCredentials: false,
  timeout: 5000, //设置超时
  headers: {
    'Content-Type': 'application/json;charset=UTF-8;',
  }
})

四、nginx配置

1. 修改nginx=>conf=>nginx.conf文件配置。

一、项目打包后,elementUi图标显示为方框问题

server {
        listen       8088; //端口号默认80,若是端口冲突,可以更改端口号
        server_name  localhost; //

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        
        // 此处的 /api要和上面的接口封装处的baseURL一致,代理才有效果,之前被这个坑了好久
        location /api {
           rewrite ^/api/(.*) /$1 break;
           proxy_pass http://www.baidu.com:8080; // 此处为接口的真实地址
        }

2. 双击nginx文件夹下的nginx.exe启动端服务。

3. 在浏览器输入localhost:8088进行访问。

以上为个人经验总结,希望能给大家提供参考,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章