vue项目部署到Gitee Pages,接口出现403处理

使用vuecli创建项目之后,目录大概如下

 接口需要安装axios

npm i axios -S 
// or
cnpm i axios -S

 还有安装qs

npm i qs -S 
// or
cnpm i qs -S

package.json文件:

{
  "name": "amazon",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build"
  },
  "dependencies": {
    "axios": "^0.26.1",
    "element-ui": "^2.15.6",
    "qs": "^6.11.0",
    "vue": "^2.6.11",
    "vue-router": "^3.2.0",
    "vuex": "^3.4.0"
  },
  "devDependencies": {
    "@vue/cli-plugin-router": "~5.0.0",
    "@vue/cli-plugin-vuex": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "sass": "^1.32.7",
    "sass-loader": "^12.0.0",
    "vue-template-compiler": "^2.6.14"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead"
  ]
}

在src目录下新建2个文件夹,api、utils。然后如果没有vue.config.js这个文件,就自己创建一个

新建文件夹之后目录如下:

在api文件夹里面创建一个index.js,

在utils文件夹里面创建2个文件,分别是base.js、http.js

api文件夹里面的index.js主要是放接口,参考如下(包含get、post请求):

import axios from '../utils/http.js'
import QS from 'qs'
import base from '../utils/base.js'

// /**
//  * post方法,对应post请求
//  * @desc注册请求
//  * @param {String} url [请求的url地址]
//  * @param {Object} params [请求时携带的参数]
//  */
//登录
export function login(data) {
    return axios({
        url: `${base.url}/users/login`,
        method: 'post',
        data: QS.stringify(data)
    })
}

// 获取菜单
export function cd(data) {
    return axios({
        url: `${base.url}/cd/cd`,
        method: 'get',
        data: QS.stringify(data)
    })
}

base.js     请求接口域名

//请求接口域名统一管理
const base = {
    url:'https://你的接口域名/api',
    //比如你的登录接口是https://www.website.com/index.php/api/login
    //那么你的url应该就是https://www.website.com/index.php/api
    //然后接口处理去api里面添加   /login  接口
}
export default base

 http.js     封装axios

import axios from 'axios'

import router from '../router/index.js'



// axios.interceptors.request.use(config => {
//   console.log(config)
//   config.headers.Authorization = window.localStorage.getItem('token');
//   return config;
// })
// 请求拦截
axios.interceptors.request.use(
    (confing) => {
        
        //设置请求头
        if (localStorage.getItem('token')) {

            // 每次除了登录的时候其他情况下发起请求的时候都携带token  -  因为其他接口
            confing.headers['token'] = localStorage.getItem('token');
        }
        // console.log(confing);
        return confing
    },
    (error) => {
        return Promise.reject(error)
    }
)

//响应拦截

axios.interceptors.response.use(
    (response) => {
        // console.log(response);
        //401代码
        // if (response.data.code === 401) {
        //     console.log('登录过期了');
        //     // localStorage.removeItem('token');
        //     // localStorage.removeItem('subject_name');
        //     localStorage.clear();
        //     Toast(response.data.msg);
        //     router.push('/')
        // }

        //466代码
        if (response.data.code === 466) {

            console.log('登录过期了');
            // alert('登录过期');
            // localStorage.removeItem('token');
            // localStorage.removeItem('subject_name');
            localStorage.clear();
            // Toast(response.data.msg);
            router.push('/login')
        }

        return response
    },
    (error) => {
      

        // 获取状态码
        const { status } = error.response
        
        //401之前的代码
        // if (status === 401) {
        //     // Message.error('请重新登录')
        //     Toast(error.response.msg);
        //         //清楚token
        //     // localStorage.removeItem('token')
        //         //跳转到登录页面
        //     // router.push('/')
        // }

        //466的代码
        if (status === 466) {
            // Message.error('请重新登录')
            Toast(error.response.msg);
                //清楚token
            // localStorage.removeItem('token')
                //跳转到登录页面
            // router.push('/')
        }
        return Promise.reject(error)
    }
)
export default axios

接下来设置vue.config.js(项目没有就自己创建)

vue.config.js里面设置部署gitee仓库名

//vue-background是我的仓库名    切换成你自己就行

const BASE_URL = process.env.NODE_ENV === 'production' ? "/schoolwork/" : '/';

module.exports = {
    publicPath: BASE_URL,
}

vue.config.js设置好就进行打包,

npm run build

部署到gitee pages上就能正常使用了。

因为我只是写了个登录页面,没有注册页面,就单独调用下登录接口来测试,网址在下行。(我在数据库放了个账号名:admin     密码:123456  供测试)

在线测试网址:amazon (gitee.io)

还要注意你的网址是否是https还是http,建议尽量和gitee使用相同的,gitee用的https,那么接口尽量也是https的,减少出错的可能。

注:因为是vue项目部署到gitee,gitee域名请求接口不同所以需要进行接口封装。如果是有自己的服务器,放自己网站上,可直接用axios部署就行,就可跳过api、utils这2个文件夹的操作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 1. 在Gitee上创建一个新的仓库。 2. 打开命令行终端,进入项目所在的目录。 3. 安装vue-cli:在命令行终端中输入 npm install vue-cli -g 。 4. 初始化项目:在命令行中输入 vue init webpack my-project (my-project为你的项目名称)。 5. 进入项目文件夹:cd my-project。 6. 安装依赖:npm install。 7. 修改config/index.js文件,将build.assetsPublicPath修改为“./”,并将build.productionSourceMap修改为false。 8. 打包项目:npm run build。 9. 将打包后的文件上传到Gitee的仓库中。 10. 在Gitee的仓库中打开Pages服务,设置镜像站点访问地址为“/”即可。 ### 回答2: 发布Vue2项目到Gitee需要以下几个步骤: 1. 创建Gitee账号:首先在Gitee官网上注册一个账号,并登录到账号中。 2. 新建仓库:在Gitee账号中,进入"仓库"页面,点击"新建仓库"按钮,填写仓库的相关信息,如仓库名称和描述等。 3. 本地项目初始化:在本地项目的根目录下,使用命令行工具输入命令`git init`,初始化本地Git仓库。 4. 关联远程仓库:在命令行工具中,输入命令`git remote add origin 仓库地址`,将本地仓库与远程Gitee仓库关联起来。 5. 添加代码并提交:将Vue2项目的所有代码拷贝到本地仓库中,并使用命令`git add .`将所有文件添加到暂存区,然后使用命令`git commit -m "提交的描述信息"`将文件提交到本地仓库。 6. 推送到远程仓库:使用命令`git push origin master`将本地仓库的代码推送到远程仓库中。 7. 验证发布:打开Gitee账号中的仓库页面,确认项目已经成功发布到Gitee上。 发布Vue2项目到Gitee的步骤大致如上所述,根据具体情况可能会有一些变化,但是以上步骤是基本流程。可以根据自己的实际情况进行相应的操作。 ### 回答3: 要将Vue2项目发布到Gitee,我们可以按照以下步骤进行: 第一步,我们需要在Gitee上创建一个新的仓库,用于存储我们的Vue2项目代码。我们可以登录Gitee后,在首页或仓库页上找到“创建仓库”按钮,点击进入创建仓库的页面。 第二步,填写仓库的名称、描述等基本信息,并选择仓库的可见性(公开或私有)。选择好后,点击“创建仓库”按钮来创建新的仓库。 第三步,我们需要将本地的Vue2项目代码与Gitee上的仓库进行关联。在本地的Vue2项目文件夹中,打开命令行或终端窗口,执行以下命令: ``` git init ``` 这将初始化Git仓库。 然后,我们需要将本地的Vue2项目代码添加到Git仓库中,执行以下命令: ``` git add . ``` 这将添加所有的文件。 接下来,我们可以提交这些添加的文件,并添加一条提交注释,执行以下命令: ``` git commit -m "Initial commit" ``` 第四步,我们需要将本地的Vue2项目代码推送(push)到Gitee上的仓库中,执行以下命令: ``` git remote add origin [Gitee仓库的URL] ``` [Gitee仓库的URL] 需要替换成你在Gitee上创建的仓库的URL。 然后,执行以下命令: ``` git push -u origin master ``` 以上命令将本地的代码推送到Gitee上的仓库中,并将master分支关联起来。 第五步,我们可以在Gitee上的仓库页面中,查看我们刚刚推送的代码。此时,我们的Vue2项目已经成功发布到了Gitee上。 总结起来,发布Vue2项目到Gitee的步骤包括:创建Gitee仓库、初始化并关联本地Git仓库、添加并提交本地代码、将代码推送到Gitee仓库。以上是一个简单的发布流程,你可以根据实际项目的需要进行更多的设置和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪先生5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值