我有一个 MV webapp,它使用<c:url>
(或<spring:url>
)jsp 标签在视图中生成链接。
我的 webapp 目前使用上下文路径“/”部署,因此可以在 address 访问http://mydomain
。
现在我想用 contextpath 部署这个应用程序/app
。
访问应用程序的新 URL 现在是http://mydomain/app
。
我不希望 Web 用户看到部署应用程序的 contextPath 并保持 URL 干净。我现在使用 RewriteRule 将 /app 附加到每个通过 Apache 的请求,然后再点击 Tomcat。
因此用户可以浏览到http://mydomain
,重写规则会将请求转发到部署在 contextpath 下的正确 webapp /app
。
我现在遇到的问题是,使用<c:url>
视图会在包含 contextPath 的 HTML 中生成页面链接。我试图用重写规则隐藏。
因此,在/app
上下文下部署 webapp 后,HTML 包含链接,http://mydomain/app/other/careers.html
而不是http://mydomain/other/careers.html
有没有办法解决这个问题而不必修改所有页面使用<c:url>
?
taglib 的目的正是管理 contextPath 以便它不会在页面中硬编码。但我的问题是,当我使用重写规则引擎时,我不再需要 HTML 页面中的这个上下文路径,因为我在重写规则本身中处理它。