vue 실천--- 서로 다른 환경에 따라 자동으로 요청한 URL 주소 변환 작업
첫 번째 단계:
RequestConfig 를 만듭니다.js는 다음과 같은 구성 파일입니다.
const APIMapping = {
project1: {
test: 'http://123.com',
local: 'http://abc.com'
},
project2: {
test: 'http://123.com',
local: 'http://abc.com'
}
}
const currentEnvMapping = {
'127.0.0.1': 'test',
'localhost': 'local',
}
export { currentEnvMapping, APIMapping }
여기에는 로컬 환경, 다른 환경 사용 방법과 마찬가지로 테스트 환경만 열거되어 있다.APIMapping은 모든 프로젝트입니다. 여기에는 프로젝트1, 프로젝트2가 있습니다.각 항목은 로컬 환경(test), 테스트 환경(local)으로 나뉜다.
current EnvMapping은 로컬 환경의 도메인 이름을 사용할지 테스트 환경의 도메인 이름을 사용할지 지정합니다.
두 번째 단계
vuex를 사용하여store 파일을 만들어서 vuex에 저장한 다음 index를 만듭니다.js 저장 데이터:
import Vue from 'vue'
import Vuex from 'vuex'
import { APIMapping, currentEnvMapping } from './../common/RequestConfig.js'
Vue.use(Vuex)
const state = {
// currentEnvMapping[location.hostname] test, local
// APIMapping['project1']
// APIMapping['project1'][currentEnvMapping][location.hostname] url
RequestHost: APIMapping['project1'][currentEnvMapping[location.hostname]]
}
const getters = {
get_RequestHost: state => {
return state.RequestHost
}
}
export default new Vuex.Store({
state,
getters
})
세 번째 단계사용할 수 있습니다. 정상적인 vue와 마찬가지로 코드는 다음과 같습니다.
mounted(){
console.log(this.$store.getters.get_RequestHost)
}
구체적인 코드는 여기를 보십시오https://github.com/YalongYan/vue-practice/tree/master/dynamic-request 보충 지식: vue-cli 프로젝트 생산 환경과 개발 환경 요청 인터페이스 설정, 수동 전환 없이 주소 자동 전환 문제
1. dev.env.js 파일에 구성 추가(개발 환경):
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
url_api: '"api"' // , ,
})
2. prod.env.js 파일에 구성 추가(운영 환경):
'use strict'
module.exports = {
NODE_ENV: '"production"',
url_api: '"http://192.168.0.30/server-carApp/"' // , ,
}
3. axios 요청 파일에서process를 통해.env.url_api는 요청한 루트 인터페이스를 얻을 수 있고,내 요청 파일의 설정:
const service = axios.create({
baseURL: process.env.url_api, // process.env.url_api
withCredentials: true,
timeout: 60 * 1000
})
내가 개발 환경에서 url_를 설정한 이유api의 값은api입니다. 제가 config/index에 있기 때문입니다.js에 설정된 크로스 에이전트는api입니다.config 아래의 index.js 파일에서 크로스 에이전트 설정
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: 'http://192.168.0.30/server-carApp/', //
changeOrigin: true, //
// secure: false, // https ,
pathRewrite: {
'^/api': ''
}
}
},
。。。。。。
4, 같은, 구체적으로.vue 구성 요소 파일에서도process를 통해 사용할 수 있습니다.env.url_api는 루트api 인터페이스 주소를 가져와서 문자열로 연결하여 원하는 전체 URL 요청 주소를 얻을 수 있습니다.예를 들어 로그인합니다.vue 파일에 이미지 인증 코드의 주소가 있습니다.
<template>
<img :src="codeImgSrc" alt=" "/>
</template>
<script>
// ,
const imgUlr = process.env.url_api + '/main/validate/qrCode?w=300&h=80'
export default {
name: 'Login',
data() {
return {
codeImgSrc: imgUlr,
}
}
}
</script>
상기 vue 실천--- 서로 다른 환경에 따라 자동으로 요청한 URL 주소를 바꾸는 작업은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분에게 참고가 되고 저희를 많이 지지해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.