Google AMP图片请求为404

时间:2016-11-25 15:07:17

标签: html amp-html

我的AMP页面正在通过验证,但有些图片是404。从我的网站访问页面时,图像正确加载。但是,当从Google的AMP CDN加载页面时(我相信它们会缓存所有页面),某些图像会返回404。

在网络标签中,我注意到我的网站上的图片GET请求是正确的(content-type:image / png)。另一方面,Google的缓存页面使用内容类型" text / html"进行GET请求。对于不加载的图像。 GET响应是一个基本的HTML页面,表示404。

应该注意的是,有几个图像可以成功加载。它们既存储在图像文件夹中,又存储在解析服务器上。两个图像位置都成功提供了图片,而不是所有时间;而且我似乎无法找到任何可能导致某些人回复200的不一致,其他人则为404.

我非常感谢任何解决这个问题的提示!

编辑:Google可能还没有缓存图片吗?页面本身肯定是缓存的。

3 个答案:

答案 0 :(得分:3)

问题在于您使用的是图像的相对路径而不是绝对路径。以下是<amp-img>标记,

<amp-img ... src="/images/city_images/633_Image.png">

需要

<amp-img ... src="https://chargehub.com/images/city_images/633_Image.png">

这应该可以解决你的问题。

答案 1 :(得分:1)

加载示例链接时,我获得了https://cdn.ampproject.org/ii/w1000/s/chargehub.com/images/city_images/633_Image.png的404。当我从您的服务器请求相应的原始图像时,我看到Cache-Control: no cache标题:

% HEAD https://chargehub.com/images/city_images/633_Image.png | grep Cache-Control
Cache-Control: no-cache

虽然我没有猜测为什么其他图片也会Cache-Control: no cacheNOT IN也会被缓存,但我会尝试指示您的Web服务器不设置此标头以查看是否有帮助。

答案 2 :(得分:0)

问题所在!这些图片最初是从Google的Image API中删除的。 API允许我指定文件格式(我想要.png&#39; s)。不幸的是,如果谷歌的图像是JPEG,他们只是添加了一个.png扩展名并将其返回给我。

基本上,如果AMP-IMG期待example.png,它只有在example.png真正被png编码时才有效(你可以通过在文本编辑器中打开文件来告诉编码,PNG会有一个&#34; png&#34;靠近顶部。)

就我而言,example.png实际上是example.jpg RENAMED to example.png(仍然是jpeg编码)。谷歌的缓存服务不是这样的,并且返回了404。

我只是将我的所有照片重命名为.jpg扩展名,然后使用Photoshop将它们批量转换为true .png。希望如果其他人被困住,这会有所帮助!

相关问题