问题标签 [google-amp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
591 浏览

html - DoubleClick AMP 广告未在某些浏览器中显示

我主要在 Chrome 和 FF 中看到这个问题。我正在尝试从 doubleclick 广告平台加载 amp-ad,但广告显示空白广告并且响应标头显示x-xss-protection:1; mode=block

这是我的代码:

该代码确实验证为正确的 amp 代码,并且我已经能够在 Safari 中加载广告。任何帮助,将不胜感激。

0 投票
2 回答
1005 浏览

asp.net-core-mvc - 在 ASP.NET MVC 中自动切换 AMP 的视图

我想使用 .NET Core 2.0 在 ASP.NET MVC 中创建我的网站的 AMP 版本。以前我曾在 .Net 框架上对实例进行过一些工作DisplayModeProvider,但这似乎不是 .NET Core 中的一个选项。

我想要做的是将视图名称更改为index.amp.cshtml而不是index.cshtml当我的 URL 开始时 iwth /amp。在 .NET Core 中实现这一目标的最佳方法是什么?

0 投票
1 回答
433 浏览

amp-html - 如何在 amp-carousel 中将图像居中?

amp-carousel几个amp-img

在这里看到它: https ://codepen.io/jaygray/pen/bLXwax

每个amp-img都显示在slide.

amp-img是一个SVG。

每个amp-img都可以在amp-lightbox(单击图像)中查看。

轮播和灯箱按预期工作。

但我无法amp-imgslide.

如何amp-img居中amp-carousel slide

0 投票
1 回答
949 浏览

amp-html - 如何按索引进行 amp-bind

是否可以在 amp-carousel 中的给定索引处添加/删除幻灯片,或在多页流中的给定索引处添加/删除页面,并将幻灯片/页面绑定到选择器?

例如:

In the code below, when a region is selected, the city & city detail from that region should be visible. 如果取消选择区域 1,则属于区域 1 的所有城市都应在“城市”部分和“城市详细信息”部分中隐藏。

此外,如果取消选择某个地区并且从“城市详细信息”部分中删除了一个城市,则“下一个城市”按钮应该仍然能够链接到下一个可用的城市。

到目前为止,我的“地区”部分正在工作(隐藏/显示城市),但我希望能在“城市详细信息”部分提供一些帮助。

0 投票
0 回答
41 浏览

accelerated-mobile-page - 即使对于桌面访问者,使用规范的 AMP 也会使其更快吗?

如果您将您的网站或网络资产(应用程序或您想调用的任何内容)转换为完整的 AMP,即不再保留规范版本和单独的 AMP 版本,那么该网站是否会像这种情况一样最终出现在 Google 的快速 CDN 上当你AMP你的常规网站?

我知道https://www.ampproject.org/是规范的 AMP,但他们没有说明这是否使其存储在 Google CDN 中并在从桌面访问时从它提供服务,或者是否确实在提供服务仅来自他们的主机,就像您为 ḿobile 使用单独的放大器时一样。

0 投票
1 回答
558 浏览

django - 如何让 Google 地方信息自动完成功能与 AMP 配合使用?

我正在尝试将此主页转换为 AMP:excurj.com。有没有办法在英雄搜索字段中保留自动完成功能?

我看到了这个问题。但是,我需要这两个脚本来使自动完成工作:

这是 autocomplete.js 里面的内容:

0 投票
3 回答
5980 浏览

amp-html - 我可以在 AMP 中使用 php 代码吗?

我有一个网站。我想为我的网站创建 Google AMP 代码。在我的现有网站和新的谷歌 AMP 网站之间传输数据的最佳方式是什么。我决定为我现有的网站创建一个新域。是好还是坏?

0 投票
1 回答
49 浏览

amp-html - 为什么 amp-list 在 src 更改并且新 src 响应为空或为空时显示先前的结果?

我在 amp 网站上工作。

我有一页包含项目列表。对于每个项目,都有一个链接(或按钮)将显示相似的项目。为了显示类似的项目,我使用了 amp-list。

现在的问题是假设我单击一个项目的相似项目链接,它会向我显示相似项目,然后我从相似项目弹出窗口返回列表页面,然后单击一些其他项目相似项目链接和该项目(如果相似)项目不存在,然后类似项目弹出显示前一个项目的类似项目。(放大器列表不改变列表

我该如何解决这些事情。意味着如果类似的项目不可用,我想显示“未找到类似的项目”消息,如果类似的项目可用,那么想显示该项目

0 投票
0 回答
369 浏览

amp-html - 在 amp-list 中使用 amp-selector

可以在amp-selector里面使用amp-list吗?在页面加载时,会呈现项目,但在应用过滤器时,项目不会呈现。

这是数据:

0 投票
2 回答
1597 浏览

asp.net - ASP.NET:使用文件中的公钥和私钥签署 URL

我想更新 Google AMP 缓存,因此我需要按照此处所述对 URL 进行签名。

我的主要问题:我正在为如何获取证书/密钥以及如何将它们包含在下面的代码中而苦苦挣扎。我只是找不到任何适用于 Windows 和 IIS 的全部说明。

我一直在阅读这些帖子:

  1. 使用 /update-cache 请求更新 AMP 页面
  2. 如何通过 .NET 使用 RSA 和 SHA256 对文件进行签名?

我不想使用我的计算机的证书存储,如第二篇文章中所述。我宁愿将磁盘上的文件用于公钥和私钥。从我的生产服务器 IIS 中,我将我的证书导出到一个 .pfx 文件,然后我使用本网站底部的说明从中提取了私钥和证书。server.key 包含-----BEGIN RSA PRIVATE KEY-----,如果我使用它加载到privateCert下面代码中的变量中,则会引发错误Cannot find the requested object.

我从我的 SSL 提供商那里得到了什么:、、、 www_example_com.crtwww_example_com.p7bcertificate code下文)。

我采取的步骤:

  1. test-public-key.cer通过打开www_example.com.crt并使用Copy to file向导将其复制到 base64 编码的 .cer 文件来创建。
  2. certificate code我将从 SSL 提供商处收到的信息保存为 file test-private-key.cer

当我运行以下代码时出现错误

你调用的对象是空的。

在线的key.FromXmlString(privateCert.PrivateKey.ToXmlString(True))

EncodeTo64 函数

certificate code

-----开始证书-----
MIIF (...) DXuJ
-----结束证书-----

更新 1

按照此页面上的导出步骤,我能够生成一个 mysite.pfx 文件。在向导中,我确保选择“是,导出私钥”并添加了密码。我逐字遵循的其余步骤。

然后我还运行了这些命令:
openssl pkcs12 -in mysite.pfx -nocerts -out private-key-VPS.pem
penssl pkcs12 -in mysite.pfx -clcerts -nokeys -out certificate-VPS.pem

我最终得到了private-key-VPS.pem一个certificate-VPS.pem文件

我知道获取 mysite.pfx 的步骤与@CodeFuller 描述的略有不同,但到目前为止这么好?

然后我添加了代码:

但是我得到了4个错误:

GetRSAPrivateKey' 不是 'X509Certificate2' 的成员。
“SignData”不是“RSA”的成员。
'HashAlgorithmName' 未声明。由于其保护级别,它可能无法访问。
未声明“RSASignaturePadding”。由于其保护级别,它可能无法访问。

更新 2

谢谢@CodeFuller!我的目标是框架 4.6.1,现在似乎更进一步。我最终得到一个这样的 URL https://www-mysite-com.cdn.ampproject.org/update-cache/c/s/www.mysite.com/articles/270/newarticle1/amp?amp_action=flush&_ts=1522939248&_url_signature=U30zdGVtLkJ5uGVbRQ==:. 我现在如何检查它是否是有效的 URL?我正在查看此页面上的“生成 RSA 密钥”部分,但我很困惑,因为我实际上是否已经编写了这些步骤?如何检查我现在最终使用的 URL 是否有效?

更新 3

好的,我尝试了您的新代码。还是得到URL signature verification error。我尝试使用/amp我的文章的 URL 和没有/amp我的 URL 中的部分。两者都会导致相同的 URL 签名验证错误。

我注意到,当我将最终 URL 打印到我的网站时(参见下面的代码),URL 显示为:

https://www-toptrouwen-nl.cdn.ampproject.org/update-cache/c/s/www.toptrouwen.nl/artikelen/132/het-uitwisselen-van-de-trouwringen-hoe-voorkom-je-bloopers/amp?amp_action=flush&_ts=1523094395&_url_signature=U3lzdGVrLkn5dGVbXQ==

请注意,参数应该在哪里amp_tsamp_url_signature,它们现在分别是_ts_url_signature

在调用 Google 之前,我尝试通过手动重命名参数_ts和 和来_url_signature编辑URL 。但我想这会导致签名和实际 URL 之间的差异。难道是我的代码以某种方式破坏了字符,因此当我稍后手动重命名这些字符时,它总是会导致签名验证?你看到我可以在我的代码中修复什么了吗?amp_tsamp_url_signature&

顺便说一句:在签署 URL 之前,我尝试在代码隐藏中替换,但随后出现 Google 404 错误&%26

请求的 URL /update-cache/c/s/www.toptrouwen.nl/artikelen/132/het-uitwisselen-van-de-trouwringen-hoe-voorkom-je-bloopers/amp?amp_action=flush%26amp_ts=1523094395% 26amp_url_signature=U3lzdGVrLkJ1dGVbXQ== 在此服务器上未找到。我们知道的就这些。

我的代码:

此外,我确信此页面存在于 Google AMP 缓存中,因为我可以在我的移动设备上的 Google 搜索结果中看到并请求它。

更新 4

我想我已经接近了,并且还获得了一些额外的帮助,请参见此处:https ://github.com/ampproject/amphtml/issues/14483#issuecomment-380549060

我现在正在尝试让其他人也更容易测试:我现在运行以下命令来获取公钥和私钥,而不是依赖于我的 SSL

我现在有文件private-key.pempublic-key.pem

我将重命名public-key.pemapikey.pub放置它https://example.com/.well-known/amphtml/apikey.pub

我想采用@CodeFuller 推荐的最简单的方法并创建一个.pfx文件,然后我可以将其加载到 type 的变量中X509Certificate2。当我运行这个命令时:
openssl pkcs12 -export -out keys.pfx -inkey private-key.pem -in public-key.pem

我得到错误:unable to load certificates

但是这次我没有.crt文件,只有public-key.pem. 我怎样才能得到一个.pfx文件?我已经在这里检查过了。