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标记中。
发布于 2017-04-26 20:22:59
对于我自己的问题,不太令人满意的答案是,从使用JQuery移动的页面链接到AMP页面没有好的方法,因为:
在我的例子中,我只是把AMP页面变成了非AMP页面。对于这个用例来说,这很好。如果我真的需要他们成为AMP,我需要重写主页上的搜索栏,这样我就不需要JQuery手机了。
发布于 2017-04-26 18:02:19
您在您的放大器页面中提供的链接是:
<link rel="canonical" href="https://www.washingtonvoterfile.com/legal-notice"/>不存在。
如果您只有一个页面,并且该页面是一个AMP页面,则仍然必须向其添加规范链接,然后将其简单地指向其自身:
<link rel="canonical" href="https://www.washingtonvoterfile.com/legal-notice.html"/>同样,正如您所解释的,您正在打开一个通过非放大器页面链接的放大器页面,即使它们都没有连接到对方。
应该有两页,一个非放大器,其中有一个标准标签指向放大器页。
<link rel="amphtml" href="https://www.example.com/url/to/amp/document.html">在安培页:
<link rel="canonical" href="https://www.example.com/url/to/full/document.html">如果你只有一个独立的AMP页面,它应该链接到自己,如上文所述。
希望这能帮上忙!
发布于 2017-04-26 19:44:32
您正在使用jQuery移动进行页面转换,但是只有在加载文档时,AMP扩展才会运行。
为了支持这一点,AMP Validator可以监听popstate事件,但实际上没有理由这样做,因为AMP页面应该按原样加载。
https://stackoverflow.com/questions/43639936
复制相似问题