저는 현재 수많은 환경에 배포되고있는 응용 프로그램을 작성하고 있습니다. 그러나 특정 환경에 배포 할 때 컨텍스트 경로에 문제가 있습니다. 이것은 Tomcat 6에서 실행되는 Java/Spring 애플리케이션입니다. 배포 프로세스는 시스템 관리자가 처리하므로 프로세스를 잘 볼 수 없으므로 시나리오를 처리하는 몇 가지 방법을 생각해냅니다. 모든 URL에는 request.getContextPath()
가 붙습니다. 정상적인 상황에서는 정상적으로 작동합니다. WAR 파일 이름의 site1.war이있는 경우 예를 들어,이Java - 컨텍스트 경로 관리
/site1/
에 배포됩니다 전쟁이 배치되는 경우 우리는 다른 환경의 몇 가지를 가지고 그렇게 응용 프로그램 루트 외부의 ROOTPATH을 포함 그것은
/otherroot/site1/
/site1/
입니다과 끝이 다른 ROOTPATH
/otherroot/
인식하지 못합니다. 이 경우 getContextPath()를 호출하면 실제로는 원하는 경로가
/otherroot/site1/
일 때
/site1/
을 반환합니다.
나 혼란스러운 것은 이미지 (이미지, 스타일 시트 또는 자바 스크립트 파일)를 정의 할 때 JSF 페이지에서 # {request.contextpath}를 사용할 때 원본을 볼 때 URL이 정확하다는 것입니다. 예를 들어, /otherroot/site/
URL이 주어진 경우, 렌더링 된 페이지의 소스를 볼 때
<img src="#{request.contextPath}/image1.png"/>
으로 설정하면 /otherroot/site1/image1.png
이 표시됩니다. 자, 페이지가 렌더링 될 때마다 컨텍스트 경로를 유지하기 위해 일부 JS 변수를 설정하면 다른 결과를 얻습니다. 예를 들어,
<script>
APP.ROOT_PATH = '#{request.contextPath}';
</script>
이
다음과 같은 렌더링 : 우리가 제대로 클라이언트 측에서 데이터를 요청하는 비동기 요청을 사용 그래서 우리는 URL을 사용하기 때문에APP.ROOT_PATH = '/site1'
이 몇 가지 문제를 일으키는.
제 궁금한 점은 주어진 경로에서 실행할 수있는 응용 프로그램을 작성하는 가장 좋은 전략은 무엇입니까?
맞춤 태그를 쓸 수 있습니다! –