当前位置 : 主页 > 网络编程 > JavaScript >

vue2 webpack proxy与nginx配置方式

来源:互联网 收集:自由互联 发布时间:2023-02-08
目录 一、项目打包后,elementUi图标显示为方框问题 二、如何给项目添加ico图标 三、proxy本地跨域配置 四、nginx配置 提示:以下是本篇文章正文内容,下面案例可供参考 一、项目打包后
目录
  • 一、项目打包后,elementUi图标显示为方框问题
  • 二、如何给项目添加ico图标
  • 三、proxy本地跨域配置
  • 四、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图标

例如:

实现步骤:

1. 把icon图片放在项目的根目录下

2. 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文件配置

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访问

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易盾网络。

上一篇:vue3中keep-alive和vue-router的结合使用方式
下一篇:没有了
网友评论