도메인 간 개발 환경의 문제를 해결 (nginx를 구성 및 호스트에 가지 마세요, Shuangwai ~)
기본 사용법
= mmodule.exports { // ... devserver : { 프록시 : { ' / API ' : ' 에 http : // localhost를 : 3000 ' } } } 요청 / API / XXX 이제 요청 HTTP에 위임 : // 로컬 호스트 : 3000 / API / XXX, 등 / API / 사용자가 현재 요청에 위임됩니다 HTTP : // localhost를 : 3000 / API / 사용자
여러 경로를 연기
= module.exports { // ... devserver : { 프록시 : [{ 컨텍스트 : [ ' 정식 / ' , ' / API ' , 목표 : ' HTTP : // localhost를 : 3000 ' , }] } }; 당신이 경우 동일한 대상에 여러 경로 에이전트에 대한 코드를 원하는, 당신은 하나의 이상 "개체 컨텍스트 속성이"로 구성된 배열을 사용할 수 있습니다 :
API 접두사를 무시
= module.exports { // ... devserver : { 프록시 : { ' / API ' : { 대상 : ' HTTP : // localhost를 : 3000 ' , pathRewrite : { ' ^ / API ' : '' } } } } } ; 요청 / API / XXX 이제 요청 HTTP에 위임 : // localhost를 : 3000 / XXX, 예를 들어, / API / 사용자가 지금 프록시 요청하는 HTTP를 : // localhost를 : 3000 / 사용자
HTTPS 안전 수칙을 무시
= module.exports { // ... devserver : { 프록시 : { ' / API ' : { 대상 : ' https://other-server.example.com ' , 안전 : false로 } } } }; 기본, 우리는 HTTPS에서 실행되도록 동의 및 백 엔드 서버 인증서가 유효하지 않은 사용하지 않습니다. : 당신은 한 보안 설정으로 수락 할 경우 거짓 라인에. 구성이 다음과 같은 수정 :
사용자 정의 규칙
module.exports = { // ... devServer { 프록시 { ' / API ' { 대상 : " HTTP : // 로컬 호스트 3000 ' , 바이 : 함수 (REQ, 입술, proxyOptions) { 경우 (req.headers .accept.indexOf ( ' HTML ' ) ==! - 1 ) { (CONSOLE.LOG ' 브라우저 요청에 대한 프록시를 건너 뜁니다. ' ); 반환 ' /index.html이 ' ; } } } } } }; 때때로 당신은 프록시 모든 요청을하고 싶지 않아. 반환 값은 수동의 프록시 기능에 기초 할 수있다. 이 함수에서는 요청 본문, 응답 본문 및 프록시 옵션에 액세스 할 수 있습니다. 반환해야합니다 거짓 프록시 요청을 무시하거나 경로를. 예를 들어 브라우저 요청에 대해 당신은 HTML 페이지를 제공하고자하지만, API 요청을 프록시 남아있다. 이 작업을 수행 할 수 있습니다 :
도메인 간
= module.exports { // ... devserver : { 프록시 : { ' / API ' : { 대상 : ' HTTP : // localhost를 : 3000 ' , changeOrigin : true로 , } } } }
위의 A 매개 변수 목록 매개 변수를 changeOrigin 것은 참으로 설정 부울 값입니다하는 local'll 가상 서버가 요청을 수신하고 대신하여 요청을 보내,
복수의 규칙 : VUE-CLI 인터페이스가 배치되어 proxyTable
= module.exports { 디바이스가 { // 정적 자원 폴더 assetsSubDirectory : ' 고정 ' , // 전달 경로 assetsPublicPath : ' / ' , // 프록시 구성 테이블 에이전트는 특정 요청하도록 구성 될 수있는 API 인터페이스에 대응 / / 사용법 : https://vuejs-templates.github.io/webpack/proxy.html proxyTable : { // 예를 들어 '로컬 호스트 : 8080 / API / XXX ' 에이전트 ' https://wangyaxing.cn/api/ XXX ' ' / API ' : { 대상 : ' https://wangyaxing.cn ' , // 도메인 인터페이스 보안 : false로 , // HTTPS 인터페이스이 매개 변수를 구성해야하는 경우 changeOrigin를 : true로 , // 인터페이스 크로스 도메인이이 매개 변수를 구성 할 필요가있는 경우 } // 예는 '로컬 호스트 : 8080 / IMG / XXX ' 에이전트 ' HTTPS : //cdn.wangyaxing.cn/xxx ' ' / IMG ' : { 대상 : ' https://cdn.wangyaxing.cn ' , // 도메인 인터페이스 안전 : 거짓에 , // HTTPS 인터페이스를 구성해야하는 경우 매개 변수 changeOrigin는 : true로 , // 인터페이스 도메인 간 경우, 매개 변수가 필요합니다 pathRewrite를 : { ' ^ / IMG' : ' ' } // pathRewrite来重写地址,将前缀'/ API '转为'/ '. } } // 다양한 데브 서버 설정 호스트 : ' 로컬 호스트 ' , // process.env에 의해 덮어 쓸 수 있습니다. 호스트 포트 : 4200은 , // process.env.PORT 덮어 쓰기 가능 포트가 사용중인 경우, 무료로 하나가 결정됩니다 }
더 많은 매개 변수 :
dev에 서버가 매우 강력한 HTTP 프록시-미들웨어의 HTTP를 사용하여 프록시 미들웨어 HTTP 프록시 기반의 구현, 소스 코드를 볼 수 있습니다 HTTP 프록시 문서 : HTTPS : // github.com/nodejitsu/node-http- 프록시. 대상 : 모듈을 구문 분석하는 URL 문자열을 URL로 전달 : 모듈을 사용하려면이 URL 문자열의 URL 구문 분석 에이전트 : HTTP (S) .request 오브젝트 (객체 노드 HTTPS 및 HTTP 프록시 에이전트를 참조)에 전달할 SSL 님 https.createServer () 객체에 전달 WS : true로 / 거짓 에이전트가 WebSocket을 여부, xfwd : true로 / 거짓 X- 추가, 앞으로 헤더 : 보안 참 / 거짓 , 검증 인증서 표시 SSL toProxy : true로 / 거짓 절대 URL로 전달, 경로 (유용한 프록시 에이전트) PrependPath : true로 /거짓 , 기본값 : true로 - 경로는 프록시 대상 경로에 추가할지 여부를 지정합니다 : ignorePath 참 / 거짓 , 기본값 : 거짓 - : 원하는 경우, 당신은 추가해야합니다 / 수신 요청 (주 프록시 경로를 무시할지 여부를 지정 설명서 ). 보이나 인근는 : 나가는 로컬 인터페이스 바인딩에 대한 문자열을 연결하려면 changeOrigin : true로 / 거짓 , 기본값 : 거짓 - 목표 URL에 대한 원본 호스트 헤더를 변경됩니다
VUE 요소-관리 분석 코드
환경 변수 : VUE_APP_BASE_API은 = ' / dev에-API ' 요청 전송 : 127.0 . 0.1 / DEV-API / 로그인 프록시 : { // 변경-API DEV / 로그인 => / 로그인 // 세부 사항 : HTTPS : //cli.vuejs .ORG / 설정 / devserver -proxy # {: [process.env.VUE_APP_BASE_API] 대상 :`HTTPS : // my.baidu.com`, 안전 : true로 , changeOrigin : false로 , pathRewrite : { [ ' ^ ' + 프로세스. env.VUE_APP_BASE_API] : '' } } }