Nginx访问静态资源配置
作者:mmseoamin日期:2023-12-21

文章目录

  • 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时, 最后的" / " 不能缺少 
          }