【问题标题】:Tomcat - making a project folder the web rootTomcat - 将项目文件夹设为 Web 根目录
【发布时间】:2011-05-01 22:37:46
【问题描述】:

我在 Tomcat webapps/mysite 下有这个文件夹,这是我所有的 JSP 和其他东西所在的位置。要访问这个文件夹,我去http://blah.com/mysite,它工作得很好。但是(因为样式表和图像静态连接到根/)我必须这样做,以便当我转到http://blah.com/ 时,它会加载webapps/mysite 中的内容。

我尝试了许多不同的方法,包括上下文和在server.xml 中设置绝对路径...似乎没有任何效果,每当我转到http://blah.com/ 时,它仍然会尝试加载 ROOT 文件夹...这里发生了什么?

【问题讨论】:

  • 您说样式表和图像“静态连接到根”是什么意思?它们是否位于 webapps/ROOT 中?

标签: java jsp tomcat


【解决方案1】:

有多种方法可以使应用程序成为根应用程序。最简单的方法是将 webapps/ROOT 的内容替换为您的 Web 应用程序的内容。

其他解决方案,请参见以下网站: http://wiki.apache.org/tomcat/HowTo#How_do_I_make_my_web_application_be_the_Tomcat_default_application_.3F

【讨论】:

    【解决方案2】:

    我使用的解决方案是在你的Tomcat中设置这个server.xml

    <Host> 中添加一个<Context> 元素,如下所示,将您的mysite 设置为默认网络应用程序。注意空的path="",这使它成为默认值。

    <Context docBase="mysite" path="" /> 
    

    Tomcat 文档中上下文容器的属性:

    docBase 你可以为这个目录或 WAR 文件指定一个绝对路径名,或者一个相对于 appBase 目录的路径名 拥有主机。

    路径 特定主机中的所有上下文路径都必须是唯一的。如果指定空字符串 ("") 的上下文路径,则 定义此主机的默认 Web 应用程序,它将处理 所有未分配给其他上下文的请求。

    查看其他有类似问题和类似答案的人hereherehere

    另见Apache Tomcat Configuration Reference - Context

    【讨论】:

      【解决方案3】:

      您可以将您的战争从 something.war == 重命名为 ==> ROOT.war
      因此,tomcat 将解压战争并为其创建 ROOT 文件夹。
      这也是在 tomcat 8 上工作的技巧。

      【讨论】:

        【解决方案4】:

        https://stackoverflow.com/users/1123501/george-siggouroglou 的 awnser 可以工作,但缺少步骤。

        • 删除ROOT和所有项目
        • 将战争作为 ROOT.war 复制到 webapps

        如果不删除,它可能无法正常工作。使用 docker 测试。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-11
          • 2013-04-08
          • 1970-01-01
          • 2021-12-05
          • 1970-01-01
          • 2012-04-22
          相关资源
          最近更新 更多