nginx怪事连连?为什么配置的add 您所在的位置:网站首页 沈阳培训机构恢复营业 nginx怪事连连?为什么配置的add

nginx怪事连连?为什么配置的add

2023-11-05 14:26| 来源: 网络整理| 查看: 265

问题

在nginx配置了add_header 'Access-Control-Allow-Origin' '*';但是为什么还是跨域呢

如图:在相应头中没有返回'Access-Control-Allow-Origin' '*';





nginx配置如下:

location /libs/bigdataos{ if ($request_filename ~* .*.(js|css|mp4|png|jpg|jpeg|woff|gif|ogg|ogv)$) { add_header Cache-Control "no-cache, max-age=-1"; } add_header 'Access-Control-Allow-Origin' '*'; alias /export/diweb/di-micro-config/lib; } 解决方案

将配置改成如下,问题得到解决

location /libs/bigdataos{ if ($request_filename ~* .*.(js|css|mp4|png|jpg|jpeg|woff|gif|ogg|ogv)$) { add_header Cache-Control "no-cache, max-age=-1"; add_header 'Access-Control-Allow-Origin' '*'; } alias /export/diweb/di-micro-config/lib; }

如图已经返回了响应头





原因分析

本来add_header 'Access-Control-Allow-Origin' '';写到nginx的location块中是可以对此路径下的所有文件生效,但是由于我们对静态文件(js,css等)进行了缓存设置,所以导致if中的配置优先级更高。nginx配置的解析逻辑是,如果有if进行明确的类型匹配,那么在if之外的配置不会对if所匹配的文件生效,所以需要将add_header 'Access-Control-Allow-Origin' '';放入if语句之中,即可生效。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有