nginx给静态资源配置前缀访问

做springboot程序时想动静分离,使用nginx管理用户上传的图片。但因为配置springboot的时候加了server.context-path=/prefix,导致访问图片地址自动加了前缀进行访问,xxx.xx.xx.xxx:80/prefix/uploadimg/imgcategory/xx.jpg,通过这样的地址来对图片进行访问。

网上nginx配置图片的参数,大致如下

location ~ .*\.(gif|jpg|jpeg|png)$ {  
      root /home/images/;#指定图片存放路径  
}

这样可以通过xxx.xx.xx.xxx:80/uploadimg/imgcategory/xx.jpg来访问图片,但是不符合上面访问的要求,没有前缀prefix,导致nginx代理springboot程序时访问不到图片。

试了很多正则方法,也没有达到要求,后来才发现自己没有理解root的规则。
nginx指定文件路径有两种方式root和alias。
其中root的处理结果是:root路径+location路径。
alias的处理结果是:使用alias路径替换location路径。

要达到上述加前缀访问的要求,使用root的方法就是,创建/root/images/prefix文件夹,通过添加一层文件路径进行访问。
这种方式的过程就是 访问图片类型的url地址时,比如访问
xxx.xx.xx.xxx:80/prefix/uploadimg/imgcategory/xx.jpg
就是访问
/home/images/ + prefix/uploadimg/imgcategory/xx.jpg

我使用的是alias的方法,

location /prefix/uploadimg/ {
            alias /home/images/uploadimg/;
}

这样访问/prefix/uploadimg/的时候就是直接访问/home/images/uploadimg了。
比如访问
xxx.xx.xx.xxx:80/prefix/uploadimg/imgcategory/xx.jpg
就是访问
/home/images/uploadimg/+imgcategory/xx.jpg
本地文件比第一种方法少一层文件夹。

linux安装eginx过程

eginx 命令
进入到nginx的sbin目录
启动 ./nginx
重启 ./nginx -s reload
停止 ./nginx -s stop

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值