【发布时间】:2023-03-07 09:02:03
【问题描述】:
我一直在开发一个 Web 应用程序(Java+Spring+Maven+HTML+CSS+js+JSP),现在我正在尝试将它部署到 tomcat。 (我使用 IntelliJ 作为 IDE)
我在代码中有很多相对路径,例如,
<script type="text/javascript" src="./static/external/jquery-2.1.0.js">
或
$.ajax({
dataType: "html",
url : "/yarimelma/deleteConversation",
当我使用 tomcat 在本地测试时,所有这些路径工作正常。我将 "Application Context" 设置为默认的 "/" 所以没问题。
当我将 WAR 部署到远程服务器到 Tomcat 时,问题就开始了。 WAR 文件名为 yarimelma-1.0.0.war,因此它在 tomcat 下创建一个上下文,即 /yarimelma-1.0.0 并提供服务我在那个背景下的申请。 (https://[mydomain]/yarimelma-1.0.0)
在这种情况下会发生什么,我的代码中的所有这些路径都无法访问,因为它试图找到 js,例如,在 https://{mydomain}/static/js/ 下jquery.js 但实际上可以在 https://{mydomain}/yarimelam-1.0.0/static/js/jquery.js 下访问,因为它已经部署了上下文。 由于这个原因,我的 ajax 调用也不起作用,因为客户端试图对 https://[mydomain]/yarimelma/connect 执行 ajax 调用,但它实际上应该转到 https://[mydomain]/yarimelma-1.0.0/yarimelma/connect
对解决方案有什么想法吗?
1-我应该在我的 spring 配置或战争导出设置中的某处将我的应用程序上下文设置为 /yarimelma-1.0.0 吗? 2-这个问题的解决方案是什么?
谢谢
【问题讨论】:
标签: java spring spring-mvc deployment tomcat8