gpt4 book ai didi

tomcat - Cloudbees 虚拟主机与 tomcat 上下文路径

转载 作者:行者123 更新时间:2023-11-28 22:44:27 25 4
gpt4 key购买 nike

我有一个在 tomcat 中本地运行的 Web 应用程序,我也已将其部署到 Cloudbees。但是,使用虚拟主机的 cloudbees 与使用上下文路径的本地 tomcat 相比,我遇到了一些问题。

我通过

访问我本地的 tomcat 应用程序
  • http://localhost:8080/SpringMVC

在 cloudbees 中,我通过

访问它

到目前为止一切顺利,但问题是当我尝试提交时。在本地,这会成功提交给

  • http://localhost:8080/SpringMVC/HelloWorld

但在 cloudbees 上,它尝试(但失败)提交给

  • http://springmvc.shaunabram.cloudbees.net/SpringMVC/HelloWorld

如果我手动修改浏览器URL为

  • http://springmvc.shaunabram.cloudbees.net/HelloWorld

一切正常

我看到了类似的问题posted here , 但建议的解决方案是

  1. 更新 web.xml 以使用前缀路径(例如,我认为/SpringMVC 在我的例子中),但这会破坏我的本地 tomcat 版本,或者
  2. 将应用部署为带有 application.xml 的 EAR 文件 - 但是 迁移到像 tomcat EE 或 JBoss 这样的 EE 容器会很麻烦 更大的任务。

我曾认为解决方案可能是使用 CloudBees Web 配置文件以某种方式配置应用程序以使用(类似于)http://springmvc.shaunabram.cloudbees.net/SpringMVC 作为我的基本 url,但我看不到任何示例(所有 CloudBees Web 配置文件示例似乎都用于特定于环境的数据源)。

非常感谢任何帮助!

肖恩

最佳答案

Web 应用程序永远不应使用绝对路径,并且始终使用 ServletContext.getContextPath() 构建 URL。我想知道你遇到了这个问题,假设你使用 SpringMVC 为你处理这个问题。

或者也许您硬编码了一些资源路径,但应该使用它来生成足够的路径,或者使用脚本来附加上下文路径:

<c:url value="/style.css" var="url" />
<link rel="stylesheet" href="${url}" type="text/css">

<link rel="stylesheet" href="${pageContext.request.contextPath}/style.css" type="text/css">

另见 Spring MVC Request URLs in JSP

关于tomcat - Cloudbees 虚拟主机与 tomcat 上下文路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12390713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com