2016-12-12 1 views
0

Хорошо, у меня есть веб-приложение весны MVC, упакованное как www-coolapp.war и развернутое на сервере tomcat. У меня есть доменное имя www.coolap.com, и я хотел бы сопоставить все запросы с localhost: 8080/www-coolapp на www.coolap.com. В моей конфигурации apache я использую следующее на виртуальном хостеProxyPass, ServletContext имя с ссылками на ресурсы не работает должным образом

ProxyRequests     off 
ProxyPreserveHost    on 
ProxyPass      /http://localhost:8080/www-coolapp/ 
ProxyPassReverse    /http://localhost:8080/www-coolapp/ 
ProxyPassReverseCookiePath  /www-coolapp/

Это в основном работает, за исключением файлов в каталоге ресурсов. В моем весеннем контексте у меня есть ресурсы, настроенные как

<mvc:resources mapping="/resources/**" location="/resources/" /> 

в моих файлах JSP Заявляют ссылки с помощью <c:url>, который подставляет имя контекста сервлета в начало URL.

<link href="<c:url value="/resources/css/bootstrap.min.css"/>" rel="stylesheet"> 
<link href="<c:url value="/resources/css/font-awesome.min.css"/>" rel="stylesheet"> 

Развернуто на сервере это перевести на

<link href="/www-coolapp/resources/css/bootstrap.min.css" rel="stylesheet"> 
<link href="/www-coolapp/resources/css/font-awesome.min.css" rel="stylesheet"> 

Что не делает правильно то есть ссылки на файлы в ресурсах (CSS, изображения, JavaScript и т.д.), неработающие ссылки на основе контекста сервлета имя добавляется к пути.

Есть ли способ изменить настройки прокси-сервера или переписать URL-адреса, чтобы сделать эту работу без изменения всех ссылок в webapp?

ответ

0

Получил это - за jstl doc добавление атрибута context перезаписывает имя контекста сервлета, и теперь ссылки правильно разрешаются с помощью конфигурации ProxyPass.

<a href="<c:url context="/" value="..."/>">Lint Text</a> 

Вероятно, спал бы на этом, прежде чем отправлять ...

Смежные вопросы