十堰做网站最好的公司做网站 node php
最近有个同事问我,静态资源映射不生效的问题,很正常我想不就是配置下资源路径就可以了吗?类似配置如下代码
@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {//一旦自定义配置静态资源路径,那么springboot默认的那四个静态资源路径规则就会失效registry.addResourceHandler("/images/**").addResourceLocations("classpath:/static/","classpath:/static/images/","classpath:/static/images/movie/2023/07/08/","classpath:/static/images/cinema/2023/07/03/","classpath:/static/images/user/2023/07/08/").setCachePeriod(100).resourceChain(true).addResolver(new PathResourceResolver());}
} 
但通过敲击浏览器 127.0.0.1:port/images/1.jpg,却始终给我404。通过查阅资料和查看文件路径结构,发现我忽略了maven 中对于静态资源的打包方式,
 我的目录结果
 
 但是最终在项目的target/class目录下 却没有将static目录,那么问题很明显,尽管我配置了静态资源映射规则,但是实际打包的时候,却没有对应将资源文件打包进去!那么如何将文件打包进去呢?那就是maven中的配置
    <build><defaultGoal>compile</defaultGoal><!--定义资源路径--><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>*/**</include></includes><filtering>false</filtering></resource></resources></build>
 
相关描述在此 maven文档说明
运行boot项目 ,最终在本地的target目录下的生成的路径如下
 
重启项目 图片能正确访问到了
