nginx 图片访问404 (使用location中使用 root,alias的区别)
2024-10-20 05:44:19
问题描述:
在/data/code_img/文件下有很多验证码图片,想将他们展示出来
希望通过 http://127.0.0.1/img/1.png 这种形式访问到对应图片,刚开始nginx中配置如下
server {
server_name location;
root /data/code_img;
location = / {
}
location = /index.html {
}
location ^~ /img/ {
root /data/code_img/;
}
location ^~ /static {
}
location / {
proxy_pass http://127.0.0.1:80/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
图片在对应文件下存在时,仍难访问失败,返回404
解决问题
通过日志发现,实际访问http://127.0.0.1/img/1.png 时,请求的文件地址为 /data/code_img/img/1.png ,而这个路径是不存在的,所以返回404
才想到是root 路径配置问题。
应该将
location ^~ /img/ {
root /data/code_img/;
}
改为
location ^~ /img/ {
alias /data/imgs/;
}
这样,再次访问时就可以正常访问了
当我同样浏览器访问 http://127.0.0.1/img/1.png
使用root 会映射为 /data/code_img/img/1.png
使用alias 会直接映射 /data/code_img/1.png
最新文章
- TaskCompletionSource<;TResult>;
- c++ sort降序排序
- Visual Studio Code 怎么支持中文
- 学习js之类的使用
- Runtime机制之结构体及操作函数
- 成功完成Moses Manual中BaseLineSystem
- 想系统的学习一下项目管理,推荐PRINCE2
- python的列表(二)
- C#:获取视频某一帧的缩略图
- css3实现自适应的3行,左右行固定宽度,中间自适应,要求先渲染中间部分
- 【SpringBoot】单元测试进阶实战、自定义异常处理、t部署war项目到tomcat9和启动原理讲解
- 新加了一块硬盘,在bios中可以看的到,在系统的磁盘管理器中看不到新加硬盘
- BZOJ 2648 / 2716 K-D Tree 模板题
- H - Tickets dp
- px 与 dp, sp换算公式?(转)
- Python奇技淫巧
- hdu 5032 不易发觉的树状数组
- HashMap,LinkedHashMap和Hashtable类的深入剖析与理解
- ava包(package)的命名规范,java中package命名规则
- 《精通Ext JS 》