当前位置: 首页 > 知识库问答 >
问题:

谷歌AMP图像请求是404'ing

章禄
2023-03-14

我的AMP页面正在通过验证,但一些图像是404'ing。从我的站点访问页面时,图像加载正确。然而,当从谷歌的AMP CDN加载页面时(我相信它们会缓存所有页面),某些图像返回404。

在网络选项卡中,我注意到图像GET请求在我的网站上是正确的(内容类型:图像/png)。另一方面,谷歌的缓存页面为没有加载的图像发出一个带有内容类型“文本/html”的GET请求。GET响应是指示404的基本超文本标记语言页面。

应该注意的是,一些图像确实加载成功。它们存储在图像文件夹中,并远程存储在解析服务器上。两个图像位置都成功地提供了图片,只是不是所有的时间;我似乎找不到任何不一致的地方,可能导致一些人响应200,另一些人响应404。

我将非常感谢任何提示,以找出这一个!

编辑:有没有可能谷歌还没有缓存这些图像?页面本身肯定是缓存的。

共有3个答案

岑明辉
2023-03-14

问题定位!这些图片最初是从谷歌的图像应用编程接口中提取的。API允许我指定文件格式(我想要. png)。不幸的是,如果谷歌的图像是一个JPEG,他们只是添加了一个. png扩展,然后返回给我。

基本上,如果AMP-IMG需要example.png,那么它只在example.png是真正的png编码时才起作用(您可以通过在文本编辑器中打开文件来判断编码,png在顶部附近会有一个“png”)。

在我的例子中,example.png实际上是将example.jpg重命名为example.png(仍然是jpeg编码)。谷歌的缓存服务不喜欢这样,返回了404。

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

齐磊
2023-03-14

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

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

虽然我不知道为什么其他图像也使用缓存控制:no Cache,比如https://chargehub.com/logos/ChargeHub-Logo.png,请不要缓存,我会尝试指示您的web服务器不要设置此标头,以查看这是否有帮助。

夏侯朝斑
2023-03-14

问题是您使用的是图像的相对路径,而不是绝对路径。所以下面的

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

需要成为

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

这会解决你的问题。

 类似资料:
  • 我想从谷歌云视觉应用编程接口中获取数据,并看到输入可以以Base64和图像uri格式给出。但是Base64似乎太长了,以uri上传图像需要一些额外的时间。请让我知道,如果有人知道这方面的任何其他工作。

  • 我正在获取一条消息,通过gmail API获取完整消息: 我正在传递一条有效的消息。Id号 谷歌。GoogleApiException:“谷歌。API。请求。请求错误 找不到[404] 谷歌。应用程序。请求。请求错误未找到[404]错误[消息[未找到]位置[-]原因[未找到]域[全局]] 这里还有一个问题 有人遇到过这个吗?

  • 我对类似的http://wiki.openstreetmap.org/wiki/Nominatim 即,为了能够提出请求并获得某种多边形坐标: “geojson:{“类型”:“多边形”,“坐标”:[[[-87.464761,44.600998],-87.459755,44.599569],-87.459745,44.601012],-87.463143,44.601],-87.464761,44.

  • 我试图使用c#和谷歌表格api在电子表格中追加一行单元格。我拿到密码了 问题是我得到的唯一一个sheetID来自url,是一个String。在哪里可以找到作为整数的工作表ID以及如何执行AppendCellsRequest? 希望你能帮忙。

  • 我有AMP中的HTML表单,带有POST操作;电子邮件的PHP文件使用Sendgrid API。我尝试了Json重定向的headers响应,但不起作用。 出于这个原因,我应用了JavaScript重定向(是的,我知道,这会为AMP验证生成错误,但我需要重定向到跟踪在线转换的感谢页面)。 PHP文件工作正常,所有电子邮件都是发送的,但没有JavaScript重定向,只有电子邮件发送的div成功或错误

  • 基于这里的讨论,我公开了我的谷歌云存储映像,但TTFB仍然需要很多时间?知道为什么吗?在调用谷歌云存储时,如何降低TFB?。我在developer tools上看到的URL和快照在公共图像URL下面给出