前言:之前由于一个需求问题,需要将图片上传到服务器上面,然后进行访问,但是我后端用的是SpringSecurity安全框架,
请求路径直接拦截了,放行也放不了,放行的的java内部程序的请求路径,然后我就是用Nginx来进行图片的访问
之前一直用的是root来解析,所以一直访问不到
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZFWPOVel-1680057666876)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20230329102705621.png)]](https://i-blog.csdnimg.cn/blog_migrate/116a4f0029bb31d8473c2c46aea75663.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fiKCmUMi-1680057666877)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20230329102731399.png)]](https://i-blog.csdnimg.cn/blog_migrate/807526d491c5ea9253f592c1b8dac9bc.png)
然后使用alias又可以访问了
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LvW4fKUS-1680057666878)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20230329103013087.png)]](https://i-blog.csdnimg.cn/blog_migrate/7ee3904cf9377b2c15bd0b855452d7f7.png)
这个是因为这两个有所不同
# 共同点:
指定文件路径。
# 不同点:
root解析时包含location后面的url;
alias解析时location不包含后面的url;
访问图片方式 http://ip:端口/根路径/图片存储文件夹/图片.jpg
# root修改前,这个是访问不了的,会报404,因为这个相当于把images往URL路径后面拼接了,变成/home/mj_admin/images/images/
然而我们的实际路径是 /home/mj_admin/images/ 所以报404错误
location /images/ {
root /home/mj_admin/images/;
}
root修改后
location /images/ {
root /home/mj_admin/;
}
# alias 不会改变路径,直接通过/images/访问/home/mj_admin/images/路径
location /images/ {
alias /home/mj_admin/images/;
}
注意:端口问题可能也会导致访问不了,我们其实配置正确了,可能是端口出现了某些问题,我们不妨换个端口试试。
在使用SpringSecurity作为后端安全框架时,遇到图片上传后无法直接访问的问题。原因是请求被拦截。通过Nginx配置,发现root和alias在处理路径上有差异。root会将location后的URL拼接到路径,而alias则不会改变路径,从而影响图片的正确访问。调整Nginx的alias配置后,成功解决了404错误,实现了图片的正常访问。
2333

被折叠的 条评论
为什么被折叠?



