Проверьте версию сервера из JavaScript - PullRequest
0 голосов
/ 12 марта 2012

В нашей среде разработки мы используем причал, в нашем производстве мы используем tomcat.

Для некоторых функций мы используем javascript, но есть некоторые жестко закодированные места для использования молы или кота.

Я знаю, что несколько странно использовать две версии сервера, но это так.

Так что теперь, когда мы создаем приложение, иногда люди забывают изменить версию сервера в файле javascript.

Есть ли способ автоматически проверить, является ли сервер пристанью или tomcat из javascript?

Я думал о том, чтобы поместить txt-файл в корень tomcat и позволить ему проверить, существует ли он, но, возможно, есть способ сделать это более естественным образом.

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Если один / оба ваших сервера отправляют HTTP-заголовок Server (как обычно делает Jetty, и его можно легко настроить для этого), тогда вы можете использовать XMLHttpRequest и посмотреть заголовки ответа.

Подробнее читайте здесь: Доступ к заголовкам HTTP веб-страницы в JavaScript

Однако я бы посоветовал вам извлечь фрагменты кода, которые изменяются между серверами, в 1 файл javascript.Например:

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

И включите этот файл как <script> на всех своих страницах.
Затем вы можете настроить Jetty и Tomcat на использование разных версий этого файла.Должно быть достаточно легко иметь сервлет (или фильтр, или действие, или что-либо еще существующее в вашей структуре), который смотрит на тип сервера и подает нужный файл.

Если это слишком много, тогда вы могли бысделать то же самое, но просто иметь:

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

И изменить этот файл на сервере (вы можете легко сгенерировать этот файл в JSP или что-то подобное)

Обязательное предупреждение: Как я уверен, вы знаете, что по разным причинам иметь разные серверы в dev и prod не фантастическая идея.Как вы решите, как реализовать решение этой проблемы, как вы узнаете, что код tomcat работает?
Jetty более чем способна быть рабочим сервером, а tomcat может хорошо поработать в процессе разработки.Я подозреваю, что вы (как команда) выполняете для себя больше работы, чем на самом деле.

1 голос
/ 12 марта 2012

вы могли бы сделать ajax-запрос к серверу, и если каждый из них отвечает по-своему, вы будете знать, что есть что.существует ли это другой файл или другой контент в конкретном файле, существует много способов, которыми серверы могут дифференцировать себя для клиента.

...