[英]Why would CSS data-URIs be logged as 404 requests?
为了减少我们网站上的请求数量,我们使用CSS数据URI而不是链接到外部图像。 出于某种原因,这些数据URI偶尔仍被记录为针对我们服务器的404请求。 为什么会这样?
随机细节:
相关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 | top 100 cs_uri_stem
生成以下图像的查询:
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="
任何帮助/方向都将非常感谢!
alt text http://www.jasonbuckboyer.com/playground/blah/data-uri-404-error1.png
我对Srikanth的评论表示赞同。 它看起来像你的代码中有一些东西将/lib/tgn/
粘贴到url
字符串的前面,最后将它放在data
之前生成/lib/tgn/data:image/png
,这是无效的。
您需要跟踪该代码并让它一起忽略所有字符串(如果它是数据uri),同时仍然允许它将图像路径附加到在/lib/tgn/
目录中保存和访问的图像。
添加说明
根据你的评论,我不确定我们是否清楚地沟通。 我在上面发布的“生成以下图片的查询”代码中看到的是:
cs_uri_stem="/lib/tgn/data:image/png;base64,iVBORw0KGgo... [etc.]"
您发布的图像显示cs_uri_stem
值在data:image/png
之前都插入了/lib/tgn/
。 某些东西 (可能是你的CDN组合,也许是服务器上的url重写规则,或其他东西)似乎导致在进程/请求时将/lib/tgn/
代码添加到css url()
代码中(因为它看起来像它没有直接添加到CSS中,因为你的缩小代码和扩展代码都没有显示它添加了)。 但是,您发布的图像显示的最终结果表明导致404错误的cs_uri_stem
都在data:image/png
之前添加了/lib/tgn/
。 因此浏览器最终没有将url()
视为数据,因为请求是以路径开头的,即/lib/tgn/data:image/png ...
因为它认为它正在寻找从path /lib/tgn/
开始的文件,所以浏览器正在发出一个请求(当然)它永远不会被满足,因此产生了404错误。
现在也许我仍然不清楚你在评论中指的是什么,但也许我已经让自己更清楚地知道我认为你的问题是什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.