Spring Boot默认了几个读取静态文件的路径,分别是:
/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
在部署项目时,我们会将Spring Boot打成jar包部署,此时静态文件也都被打进jar包里面。这时,如果想对静态文件进行更新,则进行必须重新对项目进行打包。
以此同时,Spring Boot项目要实现文件上传,然后对上传的文件进行访问。例如,上传了图片之后,将文件放到静态文件路径,然后通过URL进行访问。而默认的静态文件目录都在jar包里面,默认情况下,如果不借助第三方存储是无法实现的。
以上两种情况,我们可以通过对Spring Boot指定系统文件目录作为静态文件目录进行实现。
在application.properties配置文件里,添加以下这行:
spring.resources.static-locations: file:D:\statics,/METAINF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
这样,Spring Boot就会把D:\statics当成项目的静态文件路径优先读取了。如果要替换静态文件,可以在这个目录下使用同路径同名的文件,上传的静态文件可以放到这个目录,然后进行读取。