背景
- 如今前后端分离开发项目如火如荼,在未来的很长时间内将占主导作用.
- 基于spring boot后端,实现前端对静态资源存取.
遇到的问题
- 在spring boot项目中默认有三个文件夹可以访问,但是由于打包部署后,文件上传后,前端是不能及时下载或更新这些文件的,虽然有方法处理这样的问题,但是静态资源和包一起上传未免有些臃肿,且不方便开发.
解决
- 可以在服务器上单独配置一个文件夹作为静态资源访问区,从而实现了和包的解耦.
START
spring boot的配置
- 首先需要在application.properties配置如下,即配置文件上传路径前缀
web.upload.path=D://online_file/
- 新建一个配置类
@Configuration
public class FileApplication extends WebMvcConfigurerAdapter {
@Value("${web.upload.path}")
private String uploadPath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/**").addResourceLocations(
"file:"+uploadPath);
}
}
1.先引入路径前缀
2./**表示任何静态资源都映射到"file:"+uploadPath.
3.在生产模式和开发模式下路径前缀可能是不同的,因此可以写两个application.properties,一个用作开发环境,一个用作生产环境.
- 至此即可完成静态资源的有效切换.