springboot 找不到Failed to load resource: the server responded with a status of 404 ()
时间: 2024-12-30 10:29:08 浏览: 68
### 解决Spring Boot应用中404资源未找到错误的原因及方案
#### 1. 自定义404错误页面设置
为了更好地处理请求的资源不存在的情况,在Spring Boot应用程序中可以通过配置来展示自定义的404错误页面。这不仅提升了用户体验,也使得调试更加容易[^1]。
对于Thymeleaf模板引擎而言,可以在`src/main/resources/templates/`目录下创建名为`error.html`文件作为全局异常提示页;如果希望指定特定状态码对应的HTML,则可在同一位置建立形如`404.html`这样的文件用于专门应对该类状况。
```html
<!-- src/main/resources/templates/error.html -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Error Page</title>
</head>
<body>
<h1>Oops! Something went wrong.</h1>
<p th:text="${status}">Error status code here...</p>
<p th:text="${message}">Error message here...</p>
<a href="/">Go back to home page</a>
</body>
</html>
<!-- src/main/resources/templates/404.html -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Page Not Found</title>
</head>
<body>
<h1>The requested resource could not be found!</h1>
<a href="/">Return Home</a>
</body>
</html>
```
#### 2. 处理未映射URL并返回适当响应
除了设定固定的HTTP状态码视图外,还可以利用控制器实现动态捕捉所有未知路径,并给予恰当反馈:
```java
// ErrorController.java
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ErrorController {
@RequestMapping("/error")
public String handleError() {
// Customize the error handling logic as needed.
return "forward:/";
}
}
```
此外,也可以通过重写`BasicErrorController#errorHtml()`方法来自定义整个过程中的行为逻辑,包括但不限于调整响应头信息、修改渲染参数等操作。
#### 3. 检查静态资源配置情况
考虑到部分情况下发生的404可能是由于试图获取位于项目根部之外或被排除在外的位置上的静态资产所引起的,因此有必要确认这些要素是否已被正确引入到构建过程中以及它们的实际存放地点是否符合预期。通常来说,默认会自动扫描如下几个地方寻找可公开访问的内容:
- `/static`
- `/public`
- `/resources`
- `/META-INF/resources`
如果有特殊需求想要改变上述任一项或是新增额外来源的话,请记得更新application.properties(application.yml)里的对应属性值以反映更改后的布局结构[^3]。
例如要让Web容器知道如何定位至新的图片库,那么就需要添加一行类似于下面这样子的东西进去:
```properties
spring.resources.static-locations=classpath:/custom-static/
```
阅读全文
相关推荐


















