我应该如何配置这个?
取决于使用的服务器。这在 WAR 内部是无法控制的。只需查阅特定于服务器的文档如何配置上下文路径。
请注意,这意味着您永远不应该在 webapp 的代码和 Java 源代码中硬编码上下文路径,始终依赖于和/或Facelets 源代码中的方法,getContextPath()
这些组件会自动添加上下文路径,或以普通的, 等元素打印它。HttpServletRequest
ServletContext
<h:outputStylesheet>
<h:outputScript>
<h:graphicImage>
<h:link>
<h:button>
#{request.contextPath}
<a>
<link>
我确实找到了一种方法来实现这一点,方法是在 context.xml(在项目目录中)将路径属性指定为 path="/"。但不确定这是最好的方法吗?!
这确实是专门针对 Tomcat 的正确方法。
另一种方法是将 WAR 文件重命名为(并删除/重命名代表 Tomcat 默认主页ROOT.war
的旧文件夹)。apache-tomcat/webapps/ROOT
但这通常有点笨拙。通常,您希望有一个更具体的 WAR 文件名,通常包括构建版本,并将工作留给context.xml
.
另一种选择是在 Tomcat 实例前面放置一个HTTPD实例。这也是大多数生产服务器所做的。这还有一个额外的优势,您可以配置 HTTPD 以显示特殊的“抱歉,此网站正在维护中,稍后再回来!” 页面作为 HTTP 503 错误页面,当您关闭/重新启动/重新部署 Tomcat 时会显示该页面。
另一个问题是我将如何访问 Tomcat 服务器的根页面,我以前可以在 localhost:8080 访问它?
只需将apache-tomcat/webapps/ROOT
文件夹重命名为应代表新上下文路径的所需名称。例如apache-tomcat/webapps/tomcathome
,这应该使其在http://localhost:8080/tomcathome
.