404是服务器明确告知“该url对应文件未找到”,问题必在路径、部署或配置之一;需确保html位于webapps/your-app/下、路径大小写严格匹配、无bom/空格、不在web-inf等禁访目录,并验证真实请求url与文件系统路径严丝合缝。

直接说结论:404不是页面“坏了”,而是服务器明确告诉你“这个 URL 对应的文件,我真没找到”。问题几乎总出在路径、部署或配置三者之一,不是代码写错,也不是浏览器问题。
检查 HTML 文件是否真的在 Tomcat 的正确位置
Tomcat 只会从 webapps/your-app-name/ 目录下提供静态资源。如果你把 index.html 放在 webapps/index.html,它属于根应用(/),访问地址是 http://localhost:8080/index.html;如果放在 webapps/myapp/index.html,那必须用 http://localhost:8080/myapp/index.html。
- 确认文件名大小写完全一致——
Index.html≠index.html - 确认没有多余空格或不可见字符(比如 Windows 记事本保存时加的 BOM)
- 别把文件丢进
WEB-INF/或META-INF/目录——这两个目录下的内容默认禁止外部访问 - 部署后检查
work/Catalina/和temp/目录是否残留旧版本缓存(删掉再重启 Tomcat 更可靠)
验证请求路径是否被重写或拦截
如果你用的是 Spring Boot 内嵌 Tomcat、或 Nginx 做了反向代理、或项目用了前端路由(如 Vue Router history 模式),index.html 能访问,但子路径(如 /about)返回 404,大概率是路由未回退到 index.html。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
- 纯静态 HTML 部署时,所有请求都应直接映射到物理文件,不涉及路由逻辑
- 若通过 Nginx 代理,检查是否有
location / { try_files $uri $uri/ /index.html; }这类配置缺失 - Spring Boot 用户注意:
spring.web.resources.add-mappings=true必须为 true,且静态资源默认走classpath:/static/,不是 webapps - 访问
http://localhost:8080/myapp/时,Tomcat 实际查找的是myapp/目录下的欢迎文件(如index.html),所以确保web.xml或application.properties没禁用欢迎页
排查 iframe 或 script 中的相对路径陷阱
<iframe src="report.html"></iframe> 在本地双击打开没问题,一丢到 Tomcat 就 404?因为浏览器解析相对路径的基准变了:本地是文件系统路径,HTTP 请求下是当前 URL 的路径层级。
- 假设你访问的是
http://localhost:8080/myapp/dashboard.html,其中<iframe src="data/index.html"></iframe>,Tomcat 会去找/myapp/data/index.html,不是/myapp/dashboard.html同级的data/ - 最稳做法:用以
/开头的绝对路径,比如src="/myapp/data/index.html",或用完整 URLsrc="http://localhost:8080/myapp/data/index.html" - 检查浏览器开发者工具的 Network 标签页,点开报 404 的请求,看 “Initiator” 是谁、真实请求的 URL 是什么——这比猜快十倍
- Jenkins 等特殊 Web 容器对
src解析更严格,常把../当作越权,务必避免
真正容易被忽略的点是:404 日志里那个 URI 路径,往往就是你该去创建文件的位置。别绕开它去改配置,先让路径和文件系统严丝合缝对上——这是绝大多数 404 的终点,也是起点。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










