html文件返回404的主因是路径与tomcat上下文不匹配:必须置于webapps/yourapp/下(含web-inf),或重命名为root;根路径访问需配置welcome-file-list,且静态资源引用须用绝对路径,避免相对路径和跨上下文引用。

Tomcat部署后HTML文件返回404:检查webapps目录结构
Tomcat对静态资源的路径解析非常依赖标准目录结构。如果你把 index.html 直接丢进 webapps/ 根目录,它不会被自动识别为某个应用的首页——除非你把它放在一个带 WEB-INF 的子目录里,或者用ROOT应用。
常见错误现象:访问 http://localhost:8080/index.html 报404,但 http://localhost:8080/yourapp/index.html 能打开。
- 确保HTML文件位于
webapps/yourapp/下(yourapp是文件夹名),且该文件夹内包含WEB-INF/目录(哪怕为空) - 若想直接通过根路径访问,把整个应用重命名为
ROOT(即webapps/ROOT/index.html) - 不要把HTML文件放在
webapps/平级或conf/、lib/等非Web上下文目录中 - Windows下注意大小写不敏感但Tomcat在Linux部署时会严格区分
Index.html和index.html
iframe src相对路径在Tomcat/Jetty中失效
本地双击打开HTML时 <iframe src="report.html"></iframe> 能加载,但部署到Tomcat或Jenkins(Jetty)后报404,根本原因是服务器不按文件系统路径解析相对URL,而是按当前请求URL路径拼接。
比如浏览器地址是 http://localhost:8080/myapp/overview.html,则 src="report.html" 会被解析为 /myapp/report.html;但如果实际文件在 /myapp/static/report.html,就必然404。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
- 改用绝对路径:把
src="report.html"改成src="/myapp/static/report.html" - 避免
../:Jetty和Stapler对上级目录支持极差,src="../data/index.html"几乎必错 - 确认静态资源是否在Web应用上下文中:Tomcat默认只服务
webapps/yourapp/及其子目录,webapps/static/是独立应用,不能跨上下文引用 - 如需统一托管静态资源,建议把所有HTML、CSS、JS都放进同一应用目录,而非拆分部署
web.xml未配置欢迎文件导致根路径404
访问 http://localhost:8080/myapp/(结尾有斜杠)返回404,但加了文件名就能打开,说明Tomcat没找到默认欢迎页。
Tomcat默认只认 index.html、index.htm、index.jsp 这三个名字。如果你的首页叫 home.html,又没在 web.xml 里声明,就会404。
- 在
webapps/myapp/WEB-INF/web.xml中添加:
<welcome-file-list><welcome-file>home.html</welcome-file><welcome-file>index.html</welcome-file></welcome-file-list>
- 注意:Tomcat 9+ 默认启用
web.xml版本 3.1+,如果使用旧版schema可能被忽略 - 修改后必须重启Tomcat(热部署不触发欢迎文件列表重载)
- 不推荐删掉
web.xml来“简化”,缺省行为反而更不可控
浏览器缓存或预检请求干扰真实状态
有时候你明明改对了路径,刷新页面还是404,甚至换浏览器也不行——很可能是浏览器缓存了上次的404响应,或发出了OPTIONS预检请求被拒绝。
- 用
curl -I http://localhost:8080/myapp/index.html直接看HTTP头,确认返回的是200 OK还是404 Not Found,绕过浏览器干扰 - Chrome开发者工具 → Network → 勾选 “Disable cache”,再刷新
- 如果页面含CORS请求或fetch调用,检查是否有OPTIONS请求失败(状态码可能是403或500),它不影响主HTML加载,但会让控制台报错误导判断
- Tomcat的
work/Catalina/目录下残留旧编译类或临时文件,有时会导致资源映射异常,可清空该目录后重启
curl -I 锁定是哪一层出的问题。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










