Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么CSS数据URI会记录为404请求?_Css_Request_Http Status Code 404_Data Uri_Splunk - Fatal编程技术网

为什么CSS数据URI会记录为404请求?

为什么CSS数据URI会记录为404请求?,css,request,http-status-code-404,data-uri,splunk,Css,Request,Http Status Code 404,Data Uri,Splunk,为了减少整个站点的请求数量,我们使用CSS数据URI,而不是链接到外部图像。出于某种原因,这些数据URI偶尔仍被记录为针对我们服务器的404请求。为什么会发生这种情况 随机详细信息: 我们正在使用跟踪 发生在多个数据URI中 发生在所有浏览器上 在我们网站的多个页面上 我们的QA无法复制该问题 下面是特定数据URI的结果 相关CSS文件-() 同一文件的未统一版本-(参见第35行) 相关CSS: body{background:#e2decd url(data:image/png;base6

为了减少整个站点的请求数量,我们使用CSS数据URI,而不是链接到外部图像。出于某种原因,这些数据URI偶尔仍被记录为针对我们服务器的404请求。为什么会发生这种情况

随机详细信息:

  • 我们正在使用跟踪
  • 发生在多个数据URI中
  • 发生在所有浏览器上
  • 在我们网站的多个页面上
  • 我们的QA无法复制该问题
  • 下面是特定数据URI的结果
  • 相关CSS文件-()
  • 同一文件的未统一版本-(参见第35行)
相关CSS:

body{background:#e2decd url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGuCAIAAADeSvtRAAAAfUlEQVQ4y9WTzQ7AIAiD+fr+rzzYSeOWGP+z7MABwVJstYiQmf02zvP3yrk2442Gqvijb9LT34tJ7vVP5u/zTBzDP113n/eYCv3ec1IOLGjn1bu9+K0zQEad/4r/iMj8dvLfVqetfcsf5X6z/y7ieuVk/SU19wMesxMXQMANapSO6rYFQnIAAAAASUVORK5CYII=) repeat-x 0 0}
查询以查看所有404错误(前10个404错误中有5个数据URI):

生成以下图像的查询:

sourcetype=iis* host=prd*ssscdn* sc_status=404 cs_uri_stem="/lib/tgn/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGuCAIAAADeSvtRAAAAfUlEQVQ4y9WTzQ7AIAiD+fr+rzzYSeOWGP+z7MABwVJstYiQmf02zvP3yrk2442Gqvijb9LT34tJ7vVP5u/zTBzDP113n/eYCv3ec1IOLGjn1bu9+K0zQEad/4r/iMj8dvLfVqetfcsf5X6z/y7ieuVk/SU19wMesxMXQMANapSO6rYFQnIAAAAASUVORK5CYII="

任何帮助/指导都将不胜感激



我同意斯里坎的评论。在我看来,你的代码中有什么东西在
/lib/tgn/
url字符串的前面附加了
/lib/tgn/
,最后将其放在
数据之前,生成
/lib/tgn/data:image/png
,这是无效的

您需要跟踪该代码,如果它是数据uri,则让它一起忽略该字符串,同时仍然允许它将图像路径附加到在
/lib/tgn/
目录中保存和访问的图像

添加了解释

根据您的评论,我不确定我们是否沟通得很清楚。我从您上面发布的“生成下图的查询”代码中看到:

您发布的图像显示了
cs\u uri\u stem
值,所有这些值都在
数据/image/png
之前插入了
/lib/tgn/
。某种原因(可能是您的CDN组合,可能是服务器上的url重写规则,或其他原因)似乎导致
/lib/tgn/
代码被添加到css
url()
处理/请求时的代码(因为它似乎没有直接添加到CSS中,因为缩小或扩展的代码都没有显示它已添加)但是您发布的图像显示的最终结果表明导致404个错误的
cs\u uri\u stem
都在
data:image/png
之前添加了
/lib/tgn/
。因此浏览器最终不会处理
url()
作为数据因为请求是以路径开始的,即
/lib/tgn/data:image/png…
。因为它认为它正在查找路径开始的文件
/lib/tgn/
,所以浏览器发出一个请求(当然)它永远不会实现,因此会生成404错误


现在,也许我还不清楚您在评论中指的是什么,但也许我已经更清楚地说明了我认为您的问题是什么。

数据uri不是从数据开始的吗:如果它与url重写有关,那么您应该过滤它,而不是在服务器或Splunk配置上重新写入(我不知道如何设置)。听起来很明显,我猜:)我的一个客户机在非IIS服务器上也看到了这一点。他们之所以以/lib/tgn/开头,是因为这是CSS文件的相对路径;如果他(?)将CSS放在根目录中,数据URI请求将显示为/data:image/png[…]我们的CDN会自动合并和缩小文件。当它通过我们的combinator时,我们会转到。我已经更新了上面的URL,以了解这在我们的生产环境中是如何使用的。很抱歉,一开始就应该这样做。我不太确定我们是否就同样的事情进行了沟通。我在回答中添加了进一步的解释,但我可能仍然是误解了您在评论中想要澄清的一些内容。在您最初的回答中,我认为您的意思是
/lib/tgn/
被添加到了实际的CSS文件中,而事实并非如此。我认为这与服务器端重写规则无关,因为它的行为与任何其他相对包含的图像一样。但是更大的问题是,为什么会将其作为服务器端请求处理。这就像浏览器没有将
数据:image/png;base64,iVBORw0…
识别为有效的数据URI,因此它会向服务器发出请求……嗯,我最初的回答很模糊,因为它似乎被添加到了某个地方(可能是在CSS中或其他地方)。您的评论意味着您确实有一个服务器重写规则要添加
/lib/tgn/
,对吗?如果是,这将解释为什么它会显示这一点,但我同意,它不会解释为什么一开始就发出请求(只有当它被添加到CSS中时才会如此)@user1394692:还有两个想法。一个是,另一个在线帖子指出(理论上其他搜索引擎)有时会做一些事情,导致请求字符串中出现这样的“添加”。第二个是,你是否尝试过将请求用引号(
url(
)括起来,看看它是否碰巧解决了问题(可能是数据字符串中的某个不正确转义字符触发它发出请求)?
sourcetype=iis* host=prd*ssscdn* sc_status=404 cs_uri_stem="/lib/tgn/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGuCAIAAADeSvtRAAAAfUlEQVQ4y9WTzQ7AIAiD+fr+rzzYSeOWGP+z7MABwVJstYiQmf02zvP3yrk2442Gqvijb9LT34tJ7vVP5u/zTBzDP113n/eYCv3ec1IOLGjn1bu9+K0zQEad/4r/iMj8dvLfVqetfcsf5X6z/y7ieuVk/SU19wMesxMXQMANapSO6rYFQnIAAAAASUVORK5CYII="
cs_uri_stem="/lib/tgn/data:image/png;base64,iVBORw0KGgo... [etc.]"