我已经对我的问题进行了大量搜索,但让我们面对现实吧,我没有找到解决方法。
我正在 Tomcat7 应用服务器上部署一个 war 文件。一切都好。但是,当我在开发人员控制台的帮助下定位我的应用程序时,我可以看到我的所有链接(相对和绝对)都已损坏。
因此,我的所有 Assets 、内部 API 调用以及我的应用程序都无法访问。
例子:
我的应用程序部署到:http://localhost:8585/myapp/
。
我的链接(绝对和相对)基于此 url:http://localhost:8585/
,那么我的所有链接都已损坏是合乎逻辑的,因为它们没有针对正确的 url。
我想让我的应用程序不受任何部署依赖性、约束或常量的影响。如果你能用一些正确的方法帮助我解决我的问题,那就太好了:阅读我需要做的就是重命名我的 war ROOT.war 以在根级别部署让我恶心。
祝你有美好的一天,谢谢你, 最大。
最佳答案
嗯,你基本上有 3 个选择来实现你(据我所知)想要的:
您不会阅读的内容:在 ROOT 上下文中部署应用程序;但是,正如您正确指出的那样,这会使应用程序部署依赖,当然,这并不总是可能的;
您可以在您的 Tomcat 前面放置一个代理(例如 Apache HTTPD)并设置一些重写规则以将
http://localhost/
转换为http://localhost :8585/myapp/
- 这有时很有用,但在大多数情况下过于复杂,有时不可能(例如,由于公司的部署策略);恕我直言,最合适的一种:使用相对链接(如 Henry 在他的评论中所述)和使用 ContextPath (JSP 中的
request.contextPath
);
关于java - 为什么 Tomcat base url 在定位我的应用程序时不是我的应用程序 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36643145/