关于经过controller后跳转页面无法加载网页的静态资源问题

本文讲述了在登录后通过controller跳转导致页面静态资源加载404的故障排查过程。问题出在路径变为绝对路径,而非相对路径。修复方法是将路径改为相对路径,确保所有静态资源能正确引用,从而避免404错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于经过controller后跳转页面无法加载网页的静态资源问题

今天解决了在在登陆后通过controller后跳转的页面无法加载静态资源的问题,原因在于正常调用的时候是绝对路径,

正常调用就是 http://localhost:8080/index.html但在登陆后通过controller后路径就变了
在该路径http://localhost:8080/UserController/startUserController

在这里插入图片描述

在这里插入图片描述
所有的静态资源路径都变了,因此找不到对应的文件,报了404错误
因此我们应该使用相对路径
修改后如下
在这里插入图片描述
再次运行就成功了

### 如何在 Spring Boot 中配置和使用静态页面 #### 1. 默认静态资源位置 Spring Boot 自动支持从特定的位置加载静态资源文件,这些默认位置包括 `classpath:/static/`、`classpath:/public/`、`classpath:/resources/` 和 `classpath:/META-INF/resources/`。当应用程序启动时,任何放置在这几个目录下的HTML、CSS 或 JavaScript 文件都可以通过HTTP请求访问[^1]。 #### 2. 定制化静态资源路径 如果希望自定义静态资源的存储位置,比如创建名为 `custom-static` 的新文件夹来保存所有的前端资产,则可以在项目的 `application.properties` 或者 `application.yml` 配置文件里指定新的静态资源路径: 对于 properties 文件: ```properties spring.resources.static-locations=classpath:/custom-static/ ``` 对于 yml 文件: ```yaml spring: resources: static-locations: "classpath:/custom-static/" ``` 这使得 Spring Boot 可以从 `custom-static` 目录(位于类路径下)加载静态资源[^2]。 #### 3. 使用 Thymeleaf 模板引擎渲染视图 除了直接提供静态网页外,还可以利用模板引擎如Thymeleaf 来动态生成 HTML 页面内容。为了实现这一点,在控制器方法返回字符串名称对应于 templates 文件夹中的 .html 文件名即可完成映射关系建立。例如,下面这段 Java 控制器代码会匹配到 `/hello.html` 请求并呈现相应的 thymeleaf 模版: ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HelloController { @GetMapping("/hello") public String hello() { return "hello"; // 对应 src/main/resources/templates/hello.html } } ``` #### 4. 跳转静态页面的方式 可以通过编写简单的 RESTful API 接口或者采用重定向机制让浏览器导航到所需的静态页面上。这里给出一个例子展示如何在一个 GET 映射函数内部调用转发功能从而显示 index.html 页面的内容: ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class StaticPageController { @RequestMapping("/") public String redirectToIndex() { return "forward:index.html"; } } ``` 以上就是关于如何在 Spring Boot 应用程序中设置以及操作静态页面的方法介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值