2012-03-12 3 views
0

우리의 개발 환경에서 우리는 부두를 사용합니다. 우리는 우리가 바람둥이를 사용합니다.자바 스크립트에서 서버 버전 확인

일부 기능의 경우 javascript를 사용하지만 부두 (jetty) 또는 톰캣 (tomcat)을 사용하기 위해 일부 하드 코딩 된 위치가 있습니다.

2 가지 버전의 서버를 사용하는 것이 다소 이상하다는 것을 알고 있습니다.

이제 응용 프로그램을 만들 때 사람들은 자바 스크립트 파일에서 서버 버전을 변경하는 것을 잊어 버리는 경우가 있습니다.

서버가 자바 스크립트에서 자동으로 확인되는지 여부를 확인하는 방법이 있습니까?

Tomcat의 루트에 txt 파일을 두어 파일이 있는지 여부를 확인하도록하고 있었지만 실제로는 더 많이 수행 할 수있는 방법이 있습니다.

답변

1

서버 중 하나 또는 둘 모두가 Server HTTP 헤더를 보내고 있다고 가정하면 (보통 Jetty가 수행하고 쉽게 구성 할 수 있습니다) XMLHttpRequest을 사용하고 응답 헤더를 살펴볼 수 있습니다. 자세한 내용은 여기

읽기 : Accessing the web page's HTTP Headers in JavaScript

그러나, 나는 당신이 한 자바 스크립트 파일로 서버간에 변경 코드의 조각을 추출하는 것이 좋습니다 것입니다. 예컨대 :

/* server_info.js */ 
locations = { 
    file1 : "/some/path", 
    file2 : "/another/path" 
}; 

그리고 모든 페이지에 <script>로 해당 파일을 포함합니다.
그러면 Jetty와 Tomcat이 각각 다른 버전의 파일을 사용할 수 있습니다. 서버 유형을보고 적절한 파일을 제공하는 서블릿 (또는 필터 또는 동작 또는 프레임 워크에있는 것이 무엇이든)을 가지고 있으면 충분히 쉽습니다.

/* server_info.js */ 
server_type = "tomcat"; 

을 그리고 (쉽게하는 JSP에서 파일, 또는 이와 유사한을 생성 할 수있는) 서버에서 해당 파일을 변화 : 그건 너무 많이 있다면

, 당신은 같은 일을 할 수 있지만 단순히이

필수 경고 : dev_prod에서 다른 서버를 사용하는 것은 이러한 이유 때문에 환상적인 아이디어는 아닙니다. 이 문제에 대한 해결책을 구현하면 tomcat 코드가 작동하는 것을 어떻게 알 수 있습니까?
부두는 프로덕션 서버가 될 수있는 것 이상의 기능을 수행하며, 톰캣 (Tomcat)은 개발 과정에서 좋은 업무를 수행 할 수 있습니다. 나는 (팀으로서) 당신이 정말로 해야하는 것보다 더 많은 일을하고 있다고 의심합니다.

+0

또한 부두 서버가 서버 객체에서 'sendServerVersion'을 활성화 할 수 있으며 부두 서버라는 정보와 버전 정보가 포함 된 헤더가 반환됩니다. –

1

당신은 서버에 대한 ajax 요청을 할 수 있으며, 각각 고유 한 방식으로 응답하면 어느 것이 어떤 것인지 알 수 있습니다. 특정 파일에 다른 파일이나 다른 내용이 있는지 여부에 관계없이 서버가 클라이언트와 차별화되는 방법에는 여러 가지가 있습니다.

관련 문제