Tomcat - 将项目文件夹设为 Web 根目录

发布于 2024-09-29 23:46:00 字数 501 浏览 6 评论 0 原文

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

我尝试了很多不同的事情,包括上下文和在 server.xml 中设置绝对路径...每当我访问 http://blah.com/ 它仍然尝试加载 ROOT 文件夹......这里发生了什么?

I have this folder under Tomcat webapps/mysite which is where all my JSPs and other things are located. To access this folder I go to http://blah.com/mysite and it works just fine. However (because of stylesheets and images statically connected to the root /) I have to make it so that when I go to http://blah.com/ it will load the stuff inside webapps/mysite.

I've tried many different things including contexts and setting the absolute path in server.xml... nothing seems to work, whenever I go to http://blah.com/ it still tries to load the ROOT folder... what's happening here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

つ低調成傷 2024-10-06 23:46:00

我使用的解决方案是在 Tomcat server.xml 中进行设置,

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

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

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

docBase 您可以指定此目录或 WAR 文件的绝对路径名,或者相对于 appBase 目录的路径名
拥有主机的。

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

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

另请参阅Apache Tomcat 配置参考 - 上下文

The solution I use is to set this in your Tomcat server.xml

Add a <Context> element within the <Host> like below which sets your mysite as the default web app. Note the empty path="" which makes it the default.

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

Attributes of Context Container from the Tomcat docs:

docBase You may specify an absolute pathname for this directory or WAR file, or a pathname that is relative to the appBase directory
of the owning Host.

path All of the context paths within a particular Host must be unique. If you specify a context path of an empty string (""), you are
defining the default web application for this Host, which will process
all requests not assigned to other Contexts.

See others who have had similar question and the similar answer here, here and here

See also Apache Tomcat Configuration Reference - Context

豆芽 2024-10-06 23:46:00

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

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

There are a number of ways to make an application the root application. The simplest way is to just replace the contents of webapps/ROOT with the contents of your web application.

For other solutions, please see the following website:
http://wiki.apache.org/tomcat/HowTo#How_do_I_make_my_web_application_be_the_Tomcat_default_application_.3F

记忆で 2024-10-06 23:46:00

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

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

如果不删除,可能无法工作。用码头工人测试。

https://stackoverflow.com/users/1123501/george-siggouroglou 's awnser works but lacks a step.

  • delete ROOT and all items
  • copy the war to webapps as ROOT.war

Without the deletion, it may not work. Tested with docker.

望笑 2024-10-06 23:46:00

您可以将您的战争从 something.war == 重命名为 ==>; ROOT.war.
因此,tomcat 将解压该 war 并为其创建文件夹 ROOT。
这个技巧也适用于 tomcat 8。

You can rename your war from something.war == to ==> ROOT.war.
So, tomcat will unpack the war and will create the folder ROOT for it.
It is a trick that is working on tomcat 8 also.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文