我正在使用tomcat的httpd使用以下配置:
ProxyPass / ajp://localhost:8009/MyProject
ProxyPassReverse / ajp://localhost:8009/MyProject
效果很好,除了HTML呈现时我来自tomcat的图像链接不起作用:
<img src="/MyProject/img/image.jpg"/>
如我所料:
<img src="/img/image.jpg"/>
您的图像放置在tomcat的路径/img/image.jpg中,它是上下文相关的路径,对于您的tomcat,绝对路径是/MyProject/img/image.jpg,尽管它在/img/image.jpg之外。阿帕奇。您代理了--> / MyProject,因此,当您将上下文名称添加到路径“ MyProject”时,它确实不能像您提到的那样起作用。
解决方案1:
在tomcat中使用上下文相关路径
img/image.jpg
在这种情况下,您必须注意所请求的URI,例如/ MyProject / page1 / action1 /具有其图像相对路径
../../img/image.jsp
解决方案2:
将文档根路径与斜杠一起使用
/img/image.jpg
并使用文档根目录(' href '属性)定义元素库。请注意链接!
<head>
<base href="http://www.mydomain.com/">
</head>
参见http://www.w3schools.com/tags/tag_base.asp
解决方案3:
将项目映射到与tomcat中的apache相同的apache中(在个性化方面,我也使用此解决方案,因为它很容易,并且我将通用词用作项目/上下文名称,例如“ web”,“ site”等。 )。
ProxyPass /MyProject ajp://localhost:8009/MyProject
解决方案4:
使用内容过滤器,例如mod_proxy_html http://httpd.apache.org/docs/current/mod/mod_proxy_html.html
注意:此解决方案有时会有点慢(使用的巫婆过滤器都没关系)!
注意代理配置!!!
这只是关于重定向等,但是您的ProxyPathReverse配置错误!
ProxyPass / ajp://localhost:8009/MyProject
ProxyPassReverse /MyProject http://www.mydomain.com/
看到完整的解释http://www.humboldt.co.uk/the-mystery-of-proxypassreverse/#more-131
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句