繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM