出现java.io.FileNotFoundException报错,未创建fragment.html该如何解决?
解决方法
定位代码中的引用位置
全局搜索项目代码里的fragment.html,找到所有引用该文件的地方:- 若是模板引擎(如Thymeleaf)的片段引用(比如
th:replace="~{fragment :: header}"这类代码),确认是否为误写或无用引用,直接删除即可;若确实需要该片段,则对应创建文件。 - 若是Java代码(Servlet、Controller、配置类)里通过
getResourceAsStream或类似方法读取该文件,检查是否路径写错或逻辑错误,修正引用路径或删除无用代码。
- 若是模板引擎(如Thymeleaf)的片段引用(比如
检查模板引擎配置
如果使用Spring Boot这类框架,查看配置文件(application.properties/application.yml)里的模板路径配置,比如Thymeleaf的spring.thymeleaf.prefix是否被错误设置为/WEB-INF/template/,或是配置路径存在拼写错误。创建缺失的文件
若该文件是项目运行必需的公共模板片段,直接在/WEB-INF/template/目录下创建fragment.html文件,可先写空模板内容占位:<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <!-- 后续按需添加片段内容 --> </html>清理构建缓存并重启
执行项目的clean构建任务(比如Maven的mvn clean install,Gradle的gradle clean build),然后重启应用,避免IDE或构建工具的缓存导致旧引用残留。核对路径大小写
若部署在Linux/macOS环境,注意文件路径区分大小写,确认代码中引用的/WEB-INF/template/fragment.html和实际要创建的路径大小写完全一致,避免因大小写不匹配导致找不到文件。
内容的提问来源于stack exchange,提问作者Trần Việt Hoà
相关产品推荐
相关产品推荐

