• vue.config.js 配置proxy代理


    方案一: 配置文件

    文件内容

    1. # 开发环境
    2. NODE_ENV = 'development'
    3. # base api
    4. VUE_APP_BASE_API = '/api'
    5. # 开发环境,Url地址
    6. VUE_APP_URL = 'https://localhost:44367/api'

    三个文件分别是三个不同环境使用的,如线上,线上测试,本地测试。我在本地测试时三个文件都配置成了一样。

     vue.config.js 配置文件

    1. const path = require('path');
    2. const resolve = dir => {
    3. return path.join(__dirname, dir);
    4. };
    5. const env = process.env.NODE_ENV;
    6. console.info('env: ------>', env, 'api:------>', process.env.VUE_APP_URL,'VUE_APP_BASE_API:-->',process.env.VUE_APP_BASE_API);
    7. module.exports = {
    8. // mode: 'production',
    9. publicPath: process.env.NODE_ENV === 'production' ? './' : './', // 启动页地址
    10. // publicPath: './', // 启动页地址
    11. outputDir: "dist", // 打包的目录
    12. indexPath: 'index.html', // 生成html文件名
    13. assetsDir: 'static', // 静态资源文件目录
    14. runtimeCompiler: true,
    15. lintOnSave: false, // 在保存时校验格式
    16. productionSourceMap: false, // 生产环境是否生成 SourceMap
    17. /*
    18. chainWebpack: config => {
    19. // 修复热更新
    20. config.resolve.symlinks(true);
    21. },
    22. */
    23. devServer: {
    24. /*1.测试成功 配合配置文件使用 VUE_APP_URL = 'https://localhost:44367/api'*/
    25. proxy: {
    26. [process.env.VUE_APP_BASE_API]: {// api 表示拦截以 /api开头的请求路径
    27. target: process.env.VUE_APP_URL,//跨域的域名(不需要写路径)
    28. changeOrigin: true, //是否开启跨域
    29. ws: true, //是否代理websocked
    30. pathRewrite: { //重写路径
    31. ['^' + process.env.VUE_APP_BASE_API]: ''///api 变为空字符
    32. }
    33. },
    34. },
    35. /*2.测试成功 配置写死 target 不带/api,注意没有pathRewrite属性,调用接口时这么写 api/User/gettest*/
    36. /* port: 8088,
    37. proxy: {
    38. '/api': {// api 表示拦截以 /api开头的请求路径
    39. target : 'https://localhost:44367',//跨域的域名(不需要写路径)process.env.VUE_APP_URL
    40. changeOrigin : true, //是否开启跨域
    41. ws: true, //是否代理websocked
    42. },
    43. },
    44. /*3.测试成功 配置写死 target 带/api,注意要加pathRewrite属性,调用接口时这么写 api/User/gettest*/
    45. /*
    46. proxy: {
    47. '/api': {// api 表示拦截以 /api开头的请求路径
    48. target : 'https://localhost:44367/api',//跨域的域名(不需要写路径)process.env.VUE_APP_URL
    49. changeOrigin : true, //是否开启跨域
    50. ws: true, //是否代理websocked
    51. pathRewrite : { //重写路径
    52. '^/api' : '' ///api 变为空字符
    53. }
    54. },
    55. }, */
    56. }
    57. }

    问题:

    控制台显示 400 (Bad Request)或404等问题都是 vue.config.js 配置文件 的 proxy 的配置问题。

    主要检查点是  target 里没有带 /api 和  pathRewrite 属性的问题。

    如果使用配置文件要检查 

    VUE_APP_BASE_API = '/api' 这里要小心,要注意有没有带 /
    VUE_APP_URL = 'https://localhost:44367/api' 这里也要检查要和vue.config.js 配置文件里的代码配合使用。

    END

  • 相关阅读:
    【重拾C语言】十三、动态数据组织(一)动态变量(malloc、calloc、realloc、free)
    PreScan快速入门到精通第二十九讲雷达方程式
    Kafka - 深入了解Kafka基础架构:Kafka的基本概念
    地平线面试总结
    网工内推 | 合资公司网工,CCNP/HCIP认证优先,朝九晚六
    Win10鼠标宏怎么设置?电脑设置鼠标宏的方法
    crypto:篱笆墙的影子
    监听抖音直播间的评论并实现存储
    实验(四):指令部件实验
    【Socket】两种高效事件处理模式&并发模式
  • 原文地址:https://blog.csdn.net/cjh16606260986/article/details/136672912