springboot静态资源放行
时间: 2023-11-14 15:12:17 浏览: 137
在Spring Boot中,可以通过以下几种方式来放行静态资源:
1. 默认情况下,Spring Boot会自动将静态资源文件夹(如src/main/resources/static)下的文件放行,可以直接通过URL访问。
2. 如果需要指定静态资源前缀,可以通过在application.properties或application.yml中配置spring.mvc.static-path-pattern属性来实现。
3. 如果需要支持静态资源欢迎页(如index.html),可以将该文件放置在静态资源文件夹下,并且不配置静态资源前缀。
需要注意的是,如果使用了自定义的静态资源前缀,需要在URL中加上该前缀才能访问静态资源。
相关问题
springboot 静态资源放行
SpringBoot中的静态资源指的是一些html、js、css、图片等文件,这些文件可以在项目中通过URL路径直接访问。默认情况下,SpringBoot会把静态资源放在`/static`、`/public`、`/resources`和`/META-INF/resources`这几个目录下面,而且这些目录下的所有文件都可以被直接访问。
如果你需要在这些目录之外再添加一些静态资源,可以通过在`application.properties`文件中添加以下配置来实现:
```
spring.resources.static-locations=file:/path/to/your/static/resources/
```
其中,`file:/path/to/your/static/resources/`表示你需要添加的静态资源所在的目录。需要注意的是,在Linux系统下需要加上`file:`前缀才能识别。
此外,还可以通过添加`WebMvcConfigurer`的实现类来实现对静态资源的放行。具体代码如下:
```
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
}
```
以上代码表示,将`/static/**`路径下的请求映射到`classpath:/static/`路径下的文件。
springboot的yml配置mvc静态资源放行
### 如何在Spring Boot中通过YML配置文件设置MVC静态资源配置以实现资源放行
在Spring Boot项目中,可以通过`application.yml`或`application.properties`来配置静态资源的映射规则。以下是基于YAML格式的具体配置示例:
#### YAML配置示例
```yaml
spring:
mvc:
static-path-pattern: /resources/** # 定义静态资源请求路径模式[^1]
resources:
static-locations: # 配置静态资源所在位置
- classpath:/custom-resources/ # 自定义静态资源目录
- file:/var/www/static/ # 外部文件系统的静态资源目录
```
上述配置实现了以下功能:
- `static-path-pattern`: 设置了匹配静态资源的URL路径模式为`/resources/**`,这意味着所有以`/resources/`开头的请求都会被识别为静态资源请求[^2]。
- `static-locations`: 指定了多个静态资源的位置,支持类路径下的自定义目录(如`classpath:/custom-resources/`)以及外部文件系统中的目录(如`file:/var/www/static/`)。
如果需要进一步扩展静态资源的访问权限或者调整默认行为,则可以结合Spring Security或其他机制完成更复杂的配置[^4]。
#### 注意事项
当涉及跨域资源共享(CORS)时,需额外注意配置CORS策略以确保前端能够正常加载这些静态资源。例如,在Spring Boot应用中启用全局CORS支持可通过如下方式实现:
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/resources/**") // 对应静态资源路径
.allowedOrigins("*")
.allowedMethods("GET", "HEAD");
}
}
```
此代码片段允许来自任何源(`*`)对指定静态资源路径(`/resources/**`)发起GET和HEAD类型的HTTP请求[^3]。
---
阅读全文
相关推荐













