이전과 봄 부팅 아키텍처 완전히 별도의 프로젝트 기반의 API 경로 문제의 종료 후

VUE의 +의 VUE 라우터 vuex + + + 소자 UI Axios의 백엔드 성분 : 스프링 부트 + MyBatis로 최근 프로젝트는 완전히 별도의 전면 및 구조의 후단, 전단 구성 요소를 사용한다. 이것은 다른 배치, 배포 프런트 엔드는 바로 이러한 고성능의 Nginx 웹 서버로 사용할 수 있습니다 하나의 완전히 독립 될 수있는 전면 및 후면 끝의 배포의 편의를 백 엔드 수준의 확장을 고려하기 위해 수행된다.
전면 및 후면 끝 완전히 분리 된 아키텍처 설계

프런트 엔드 코드에 하드 코딩 된 IP 주소를 배포 할 때 프런트 엔드 백 엔드 서버에 문제가 그것에게 데이터에 대한 액세스를 액세스하기 위해 IP 주소를 알아야하지만, 그렇다면 것은있을 것입니다 : 서버 IP 주소 변경을 다시 포장하고 발표해야 할 때 (다른 환경은 개발, 테스트하고, 생산 라인은 특정 환경에 포장해야합니다).

상대 경로

상대 경로를 사용하면 API 프론트 엔드에 액세스 할 수
프로젝트의 후단의 컨텍스트 경로가 "/"다음 자원 활용에 대한 고려 중, 초기 프로젝트 (소규모) 앞에와있는 경우 후단은 (봄 부트 프레임 워크는 정적 페이지를 지원) 같은 임베디드 톰캣 컨테이너에 배포 할 수 있습니다 . 다음이 경우, Ajax를 선단부에서 요청이 사용될 수있다 상대 경로 프로젝트 :

var url = "/api/v1/data"
$.get(url, function(data){
    alert("Data Loaded: " + data);
});

이 때, 아약스 상대 경로 앞에 자동으로 HTTP를 추가 : // 호스트 : 포트 및 컨텍스트 경로는 "/", 다음 마지막 API 요청에 대한 경로는 다음과 같습니다 http://host:port/ + 相对路径. 이때, 전단 코드 어드레스 및 후단의 포트에 하드 코딩 않을 것, 그것은이 사용량이 두 가지 조건이 충족되어야 것으로 주목된다 :
(1) 전방 및 후방 단부가 동일한 용기에 배치되어야한다
(2) 컨텍스트 경로 백엔드 있어야 "/"

절대 경로

API에 액세스 절대 경로를 사용하여 프런트 엔드
프로젝트가 진행되면서, 전방 및 후방 단부 후 다음 Ajax 요청 앞에 호스트 주소가 다르기 때문에, 거기 (상대 경로에 사용될 수없고, 완전히 독립적으로 전방 및 후방 단부의 배치를 고려할 필요가있다 (클러스터) 모두 수평 확장을 지원하도록 크로스 도메인), 액세스 API 만 절대 경로를 사용하여 백엔드,하지만 백엔드와 같은 하드 코딩 된 주소와 포트 (액세스 할 수 있습니다 : HTTP를 : // 호스트 : 포트 / API / XXX ). 이 어색한 상황에 대처하기 위해 너무 오래 도메인 이름 변경으로, 액세스 주소의 프론트 엔드는 변하지 않을 것, 백엔드 서비스에 액세스 할 도메인 이름을 사용하는 방법을 고려한다.

추천

출처www.cnblogs.com/nuccch/p/10960937.html