0
好吧我有一个弹簧MVC Web应用程序打包成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/
这基本上除了工作在资源目录中的文件以下。在我的Spring上下文我必须配置为
<mvc:resources mapping="/resources/**" location="/resources/" />
在我的JSP文件的资源,我宣布使用<c:url>
其预先考虑servlet上下文名称的网址开头的链接。
<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">
了基于servlet上下文不呈现在正确的资源,即链接到文件(CSS,图片,JavaScript等)是断开的链接名称被预先添加到路径中。
有没有办法修改代理设置或重写url以使其工作而不更改webapp中的所有链接?