Хорошо, у меня есть веб-приложение весны 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?