关于SpringBoot无法访问CSS样式

本文介绍在Spring框架中如何正确配置静态资源(如css、js、img等)的访问路径,确保html页面能顺利加载这些资源。特别强调了在application.yml中设置static路径的方法,以及在html链接中使用路径的正确方式。

如果你在application.yml中设置了访问static目录下的所有的静态资源(css、js、img),那么在html页面中就不用添加static路径

spring:
  resources:
    static-locations: classpath:static/

但是css前面还是要加斜杠,不然还是无法访问

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="/css/bootstrap.css" rel="stylesheet">
</head>
</html>
### 如何在 Spring Boot 中正确添加和引用 CSS 文件 在 Spring Boot 项目中,为了能够正常引入并使用 CSS 文件,需要遵循特定的目录结构以及可能的配置调整。 #### 静态资源放置位置 Spring Boot 默认会在 `src/main/resources/static` 下查找静态资源文件。因此,所有的 CSS、JavaScript 或图片文件都应当被放置在这个目录下[^3]。例如: ``` src/ └── main/ └── resources/ ├── static/ │ ├── css/ │ │ └── styles.css │ ├── js/ │ │ └── script.js │ └── img/ │ └── logo.png └── templates/ └── index.html ``` 上述结构表明,CSS 文件通常位于 `static/css/` 路径下,而 HTML 页面则存放在 `templates/` 目录中。 --- #### 在 HTML 文件中引用 CSS 文件HTML 文件存储于 `templates/` 目录时,可以通过标准的 `<link>` 标签来引用 CSS 文件。需要注意的是,在 Spring Boot 的上下文中,默认情况下可以直接通过 `/css/styles.css` 进行访问。以下是具体的代码示例: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <!-- 正确引用 CSS --> <link rel="stylesheet" href="/css/styles.css"> </head> <body> <h1>Hello, World!</h1> </body> </html> ``` 如果发现样式未生效,则可以尝试检查是否存在路径错误或者缓存问题[^4]。 --- #### 可选配置项 某些场景下,可能需要进一步自定义静态资源的映射规则。此时可以在 `application.properties` 文件中设置属性 `spring.mvc.static-path-pattern` 来指定静态资源匹配模式。例如: ```properties spring.mvc.static-path-pattern=/static/** ``` 此配置的作用是允许更灵活地控制哪些 URL 请求会被视为静态资源请求。 --- #### 常见问题排查 1. **路径不正确**:确保 CSS 文件确实存在于 `src/main/resources/static/css/` 目录下。 2. **浏览器缓存**:清除浏览器缓存后再刷新页面查看效果。 3. **模板引擎冲突**:如果是 Thymeleaf 或 FreeMarker 等模板引擎渲染的页面,请确认其语法无误,并且支持外部链接标签[^5]。 --- ### 总结 综上所述,要在 Spring Boot 项目中成功引入 CSS 文件,需将 CSS 存放至 `static/css/` 并采用正确的相对路径进行引用;必要时可通过修改 `application.properties` 实现更加精细的资源配置管理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值