springboot 设置文件资源映射 addResourceHandler 与 addResourceLocations 路径无效的一些问题
开始我是这样设置的
- registry.addResourceHandler("/upload/**").addResourceLocations("file:" + path); 完整代码如下图:
- path对应的路径在 yml 文件中设置,如下图
然后项目启动后,通过在浏览器中直接访问文件的地址(例如: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,在下图中
这里细节是,我将path打印出来后,地址最后是没有 "/" 的,没有的话就是在当前目录以及下面的目录中找,但是如果有 “/” 的话,就是在当前目录下面的目录中找资源
最后为了不和文件目录地址混淆。我将静态资源映射地址进行更改了,如下图
接下里文件的访问地址就变成了 localhost:8090/app-template/api-static-files/upload/20200915/1305801405013389313_book.jpeg