springboot 设置文件资源映射 addResourceHandler 与 addResourceLocations 路径无效的一些问题

springboot 设置文件资源映射 addResourceHandler 与 addResourceLocations 路径无效的一些问题

开始我是这样设置的

  • registry.addResourceHandler("/upload/**").addResourceLocations("file:" + path);  完整代码如下图:

springboot 设置文件资源映射 addResourceHandler 与 addResourceLocations 路径无效的一些问题

  • path对应的路径在 yml 文件中设置,如下图

springboot 设置文件资源映射 addResourceHandler 与 addResourceLocations 路径无效的一些问题

然后项目启动后,通过在浏览器中直接访问文件的地址(例如:http://localhost:8090/app-template/upload/20200915/1305801405013389313_book.jpeg ),希望可以查看到相应的文件资源,但是访问后,出现页面无法找到错误,找了好久的错误,最后是地址出现了错误,正确地址应该是 http://localhost:8090/app-template/upload/upload/20200915/1305801405013389313_book.jpeg,第一个upload为地址,第二个upload为文件的物理地址的目录,因为最开始我在 addResourceHandler 中写的地址与 实际存储目录名字一样,同时也是自己的理解有误,导致资源一直访问不到

但是 使用最开始的地址:http://localhost:8090/app-template/upload/20200915/1305801405013389313_book.jpeg,在下图中

springboot 设置文件资源映射 addResourceHandler 与 addResourceLocations 路径无效的一些问题

这里细节是,我将path打印出来后,地址最后是没有 "/" 的,没有的话就是在当前目录以及下面的目录中找,但是如果有 “/” 的话,就是在当前目录下面的目录中找资源

最后为了不和文件目录地址混淆。我将静态资源映射地址进行更改了,如下图

springboot 设置文件资源映射 addResourceHandler 与 addResourceLocations 路径无效的一些问题

接下里文件的访问地址就变成了 localhost:8090/app-template/api-static-files/upload/20200915/1305801405013389313_book.jpeg