好的,我有一个spring MVC web app打包为www-coolapp.war并部署到tomcat服务器。我有一个域名www.coolap.com,我想将localhost:8080 / www-coolapp的所有请求映射到www.coolap.com。在我的apache配置中,我在虚拟主机中使用以下内容
groupid
除了资源目录中的文件外,这基本上有效。在我的春天上下文中,我将资源配置为
ProxyRequests off
ProxyPreserveHost on
ProxyPass / http://localhost:8080/www-coolapp/
ProxyPassReverse / http://localhost:8080/www-coolapp/
ProxyPassReverseCookiePath /www-coolapp /
在我的JSP文件中,我使用<mvc:resources mapping="/resources/**" location="/resources/" />
声明了链接,这些链接将servlet上下文名称添加到URL的开头。
<c: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">
无法正确呈现,即资源(css,图像,javascript等)中文件的链接是基于前缀为路径的servlet上下文名称的断开链接。
有没有办法修改代理设置或重写网址以使其工作而不更改webapp中的所有链接?
答案 0 :(得分:0)
得到它 - 根据jstl doc添加context
属性覆盖servlet上下文名称,现在链接使用ProxyPass配置正确解析。
<a href="<c:url context="/" value="..."/>">Lint Text</a>
在张贴之前可能应该睡在这个......