HTML文件返回404主因是路径、上下文、欢迎页配置三者之一出错:必须置于webapps/yourapp/下(含WEB-INF),或重命名为ROOT;根路径访问需配置welcome-file-list,静态资源引用须用绝对路径。

HTML 文件部署后返回 404,绝大多数情况不是代码写错了,而是服务器根本没“看到”那个文件——路径、上下文、欢迎页配置这三处只要错一个,index.html 就永远进不了浏览器。
Tomcat 中 HTML 放错位置导致 404
Tomcat 不是文件浏览器,它只认符合 Web 应用规范的目录结构。把 index.html 直接扔进 webapps/ 根目录,访问 http://localhost:8080/index.html 必然 404。
- 必须放在带
WEB-INF/子目录的应用文件夹里,例如webapps/myapp/index.html+webapps/myapp/WEB-INF/(哪怕WEB-INF是空的) - 想用根路径访问?把整个应用重命名为
ROOT:即webapps/ROOT/index.html - 绝对不要放
webapps/static/、conf/或lib/这类非 Web 上下文目录——Tomcat 不会扫描它们 - Linux 部署时注意大小写:
Index.html≠index.html,Windows 下不报错不代表能上线
iframe src 相对路径在 Tomcat/Jetty 中失效
本地双击打开 HTML 时 能加载,一丢进 Tomcat 就 404,是因为服务器按请求 URL 拼接路径,不是按文件系统。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 浏览器地址是
http://localhost:8080/myapp/overview.html,那么src="report.html"会被解析为/myapp/report.html,而非同目录下的物理路径 - 改成绝对路径:
src="/myapp/static/report.html"(确保该路径下真有文件) - 禁用
../:Jetty 和 Jenkins 的 Stapler 对上级目录支持极差,src="../data/index.html"几乎必错 -
webapps/static/是独立应用,不能跨上下文引用;所有静态资源建议统一放进webapps/myapp/下
web.xml 未声明欢迎文件导致根路径 404
访问 http://localhost:8080/myapp/(结尾有斜杠)报 404,但 http://localhost:8080/myapp/index.html 能打开,说明 Tomcat 找不到默认首页。
- Tomcat 默认只认
index.html、index.htm、index.jsp这三个名字 - 如果你的首页叫
home.html,必须在webapps/myapp/WEB-INF/web.xml里显式声明:
<welcome-file-list><welcome-file>home.html</welcome-file></welcome-file-list>
- 修改
web.xml后需重启 Tomcat,否则不生效 - 别依赖 IDE 自动部署——检查实际
webapps/myapp/WEB-INF/下的文件是否已更新
真正容易被忽略的是:404 往往不是单点错误,而是路径、上下文、欢迎页三者联动失败。比如你改对了 web.xml,但 index.html 其实还在 webapps/ 根目录下,那还是 404;又或者你用了绝对路径 src="/myapp/report.html",但应用名其实是 myapp-v2,照样 404。动手前先确认三件事:文件在哪、应用名是什么、浏览器地址栏里当前 URL 是什么。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










