我使用的脚手架是Vue CLI ,过程中都很简单,出错的是跨域问题,在本地webpack反向代理,但部署到vercel后没有转发请求,还需要我们自己设置一番。
vercel 真的太好用了,一键自动化部署,步骤超级超级简单。
我把跟着coderwhy敲的项目部署上去了:https://my-bms.vercel.app/login
测试账户
用户名: coderwhy
密码: 123456
在使用vercel 要注意这几个问题,
1、注意vercel 默认的打包路径是dist,如果你更改了outputDir, 要记得在vercel 项目setting里重写,否则会出错
在这里插入图片描述

跨域问题

接下来记录以下如何解决跨域问题。
首先安装中间件http-proxy-middleware
在根目录新建api文件夹,新建proxy.js

// 该服务为 vercel serve跨域处理
const { createProxyMiddleware } = require('http-proxy-middleware')

module.exports = (req, res) => {
  let target = ''

  // 代理目标地址
  // xxxxx 替换为你跨域请求的服务器 如: http://baidu.com
  if (req.url.startsWith('/api')) {
  // 这里填目标地址
    target = 'xxxxx'
  }
  // 创建代理对象并转发请求
  createProxyMiddleware({
    target,
    changeOrigin: true,
    pathRewrite: {
      // 通过路径重写,去除请求路径中的 `/api`
      // 例如 /api/user/login 将被转发到 http://target/user/login
      '^/api/': '/'
    }
  })(req, res)
}

根目录下新建 vercel.json

{
  "rewrites": [
    {
      "source": "/api/(.*)",
      "destination": "/api/proxy"
    }
  ]
}

写好上述两个文件后提交代码,再次进入vercel 发现正在building, 等待几分钟就发现build 成功了, 重新visit 网站发现请求已经正常啦~
在这里插入图片描述

Logo

一站式 AI 云服务平台

更多推荐