开发者社区> 问答> 正文

java的contextpath和反向代理的问题

请问下大家java web项目contextpath怎么设置的?

  1. 我原来的做法:
    设置css时, 原来是/<%=request.getContextPath()%>/css/styles.css

然后页面里面有链接到首页的链接,也写成/<%=request.getContextPath()%>/
本来apache使用mod_jk通过ajp连接tomcat,tomcat里面设置virtualhsot,一切正常

  1. 昨天尝试用反向代理,在apache里面加入
    `ProxyPass / http://localhost:800/mywebapp

ProxyPassReverse / http://localhost:800/mywebapp`
发现这样首页获取,但是获取css的请求,变成http://localhost:800/mywebapp/mywebapp/css/style.css, css就获取不到了
所以页面显示就不正常了,请问下大家这个一般怎么处理的?

  1. 想到一个做法是所有的链接关系都用相对当前的路径,比如./或者../这样,
    但是由于页面是模块化拆分的,header/footer等一些页面是共享的,而且所有的页面不一定是在同一级目录上,比如首页和具体页面,所以用相对页面也不方便处理,因为header在首页和子页面的位置不一样,用相对目录也不方便

谢谢

展开
收起
落地花开啦 2016-03-24 17:58:52 2527 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    建议你用apache的mod_jk吧,然后写rewrite。下面的rewirte中spiritcms是contextPath,下面那段代码的意思是,如果你的路径是有contextpath就跳过rewirte,否则就自动在url上添加contextpath。
    `RewriteEngine On
    RewriteCond $1 !^(spiritcms)
    RewriteRule ^/(.*)$ /spiritcms/$1 [PT]`

    2019-07-17 19:13:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载