文章目录
- Nginx访问静态资源配置
-
- 1. 配置修改如下:
- 2. 配置相关属性说明
- 3. 实例【静态资源–图片】,并开启路径目录列表:
- 4. location中的root和alias参数说明:
Nginx访问静态资源配置
关于 alias和root配置的说明:
一般情况下,在nginx配置中的良好习惯是:
1)在location /中,即路径为“ / ”时, 配置root目录;
2)在location /path中,即路径包含指定内容,如“ localtion /imgs ”时, 配置alias虚拟目录。
1. 配置修改如下:
# 访问静态资源:直接配置静态资源_绝对路径,Docker的话,需要配置Docker内部Nginx的绝对路径
# 配置文件中增加如下内容location(配置文件位置:nginx/nginx.conf,
# 新版本配置文件位置:/nginx/conf.d/default.conf)
location /images {
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
# Window服务器,路径如 D:/images/;
# ***注***: 1. 路径分隔符为 / 或 \ ,而非
# 2. 使用alias,最后的" / " 不能缺少
alias /home/nginx-1.22.0/images/; # 绝对路径 [ docker需要配置容器内绝对路径 ]
}
2. 配置相关属性说明
nginx默认是不允许列出整个目录的,如需开启,使用下方三个配置项:
autoindex on; 开启目录列表访问,这样浏览器可以直接访问根路径,列出文件列表,和Ftp效果类似
autoindex_exact_size on; 显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间
3. 实例【静态资源–图片】,并开启路径目录列表:
1. 在/home/nginx-1.22.0文件夹下创建images文件夹[可随意路径],放入图片: MyIndex.jpg
2. 修改nginx.conf配置文件【路径千万别找错了】
如 路径: /usr/local/nginx/conf/nginx.conf 或 D:/images/;
3. 新增一个图片资源路径访问location:
location /images {
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
alias /home/nginx-1.22.0/images/; # 最后的" / " 不能缺少
# alias F:\PHP\upload;
}
4. location中的root和alias参数说明:
alias和root区别:
1)alias指定的目录是准确的,Nginx访问该location时,资源路径即alias指定的跟路径;
2)root指定的目录是location匹配访问的path目录的上一级目录
# 如 location /imgs/, root配置为 /code/front/dist
# 那么,文件的路径存在在: /code/front/dist/imgs/
3)使用alias标签的目录块中不能使用rewrite的break(具体原因不明);
另外,alias指定的目录后面必须要加上 “ / ” 符号!!!
4)root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问。
所以,一般情况下,在nginx配置中的良好习惯是:
1)在location /中配置root目录;
2)在location /path中配置alias虚拟目录。
# 假设项目文件夹:code , 静态文件的位置:/code/front/dist/
# 如下使用root配置,会访问不到,报404之类的:
location ^~ /static/ {
# 这里使用root的话,相当于 文件的路径为 /data/zfy_home/code/front/dist/static/
# root配置无效
root /data/zfy_home/code/front/dist/;
# 有效配置:
alias /data/zfy_home/code/front/dist/; # 使用alias时, 最后的" / " 不能缺少
}
Or
location / {
# 这里直接使用root配置全路径即可
# root配置有效
root /data/zfy_home/code/front/dist/;
# location后跟" / "时,建议直接使用root了,alias多此一举了感觉
alias /data/zfy_home/code/front/dist/; # 使用alias时, 最后的" / " 不能缺少
}