首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从非amp html页面链接的amp-html页面不工作。

从非amp html页面链接的amp-html页面不工作。
EN

Stack Overflow用户
提问于 2017-04-26 16:36:21
回答 3查看 1.4K关注 0票数 1

https://www.washingtonvoterfile.com是一个传统的html (不是amp-html)页面,带有指向amp-html页面的链接(例如:https://www.washingtonvoterfile.com/legal-notice.html)。

当直接加载这些放大器页面时,它们将正确呈现,而插件表明它们是有效的AMP。

当点击(非放大器)主页上的链接加载时,它们不加载amp.js就呈现出来。谷歌Chrome插件已经变灰,这表明它们不是AMP页面。

如果刷新,amp.js将加载并正确呈现。插件显示AMP是有效的。

我试图使用硬链接,相关链接等来解决这个问题,没有运气。

如有任何意见,将不胜感激。

更新

这个问题似乎是由主页上使用的JQuery手机的工作方式造成的。基本上,任何链接页面的head标记中的大多数项都不会加载。

其中一种解决方案是将脚本标记移动到body标记(https://forum.jquery.com/topic/script-not-running-unless-i-refresh-page)中,这是不起作用的,因为放大器脚本必须加载在head标记中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-26 20:22:59

对于我自己的问题,不太令人满意的答案是,从使用JQuery移动的页面链接到AMP页面没有好的方法,因为:

  1. JQuery移动并不会加载链接页面的头标签中的大部分内容。
  2. amp.js不能按照AMP规则进入主体标签。
  3. JQuery移动和amp.js之间存在冲突,因此不可能在主页上加载amp.js。

在我的例子中,我只是把AMP页面变成了非AMP页面。对于这个用例来说,这很好。如果我真的需要他们成为AMP,我需要重写主页上的搜索栏,这样我就不需要JQuery手机了。

票数 1
EN

Stack Overflow用户

发布于 2017-04-26 18:02:19

您在您的放大器页面中提供的链接是:

代码语言:javascript
复制
<link rel="canonical" href="https://www.washingtonvoterfile.com/legal-notice"/>

不存在。

如果您只有一个页面,并且该页面是一个AMP页面,则仍然必须向其添加规范链接,然后将其简单地指向其自身:

代码语言:javascript
复制
<link rel="canonical" href="https://www.washingtonvoterfile.com/legal-notice.html"/>

同样,正如您所解释的,您正在打开一个通过非放大器页面链接的放大器页面,即使它们都没有连接到对方。

应该有两页,一个非放大器,其中有一个标准标签指向放大器页。

代码语言:javascript
复制
<link rel="amphtml" href="https://www.example.com/url/to/amp/document.html">

在安培页:

代码语言:javascript
复制
<link rel="canonical" href="https://www.example.com/url/to/full/document.html">

如果你只有一个独立的AMP页面,它应该链接到自己,如上文所述。

希望这能帮上忙!

票数 1
EN

Stack Overflow用户

发布于 2017-04-26 19:44:32

您正在使用jQuery移动进行页面转换,但是只有在加载文档时,AMP扩展才会运行。

为了支持这一点,AMP Validator可以监听popstate事件,但实际上没有理由这样做,因为AMP页面应该按原样加载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43639936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档