为了减少我们网站上的请求数量,我们使用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
答案 0 :(得分:0)
我对Srikanth的评论表示赞同。在我看来,您的代码中有一些内容将/lib/tgn/
粘贴到url
字符串的前面,最后将其放在data
之前以生成/lib/tgn/data:image/png
,这是无效的。
如果它是数据uri,你需要跟踪该代码并让它忽略所有字符串,同时仍然允许它将图像路径附加到/lib/tgn/
目录中保存和访问的图像。 / p>
添加说明
根据您的评论,我不确定我们是否清楚地沟通。我在上面发布的“生成以下图片的查询”代码中看到的是:
cs_uri_stem="/lib/tgn/data:image/png;base64,iVBORw0KGgo... [etc.]"
您发布的图片显示在cs_uri_stem
之前插入了/lib/tgn/
的{{1}}值。 Something (也许是您的CDN组合,可能是服务器上的网址重写规则或其他内容)似乎导致data:image/png
代码被添加到css /lib/tgn/
代码中进程/请求时间(因为它似乎没有将直接添加到CSS中,因为您的缩小代码和扩展代码都没有显示它已添加)。但是,您发布的图片显示的最终结果表明导致404错误的url()
在cs_uri_stem
之前添加了/lib/tgn/
。因此,浏览器最终没有将data:image/png
视为 数据 ,因为请求是以 路径 ,即url()
。由于它认为它正在寻找从路径/lib/tgn/data:image/png ...
开始的文件,因此浏览器会发出一个请求(当然)它永远不会被满足,因此会产生404错误。
现在也许我仍然不清楚你在评论中指的是什么,但也许我已经让自己更清楚地知道我认为你的问题是什么。