如何在AMP-HTML页面中加载外部页眉和页脚HTML

如何在AMP-HTML页面中加载外部页眉和页脚HTML,html,amp-html,accelerated-mobile-page,Html,Amp Html,Accelerated Mobile Page,我正在将现有的HTML转换为AMP-HTML。在较旧的HTML中,我正在加载页脚和页眉,它们位于单独的HTML文件中,这些文件是使用jquery加载的,如下代码所述 $("#divHeader").load('../header.html'); $("#divFooter").load('../footer.html'); 这些HTML只有静态数据。有没有办法在AMP页面中添加这些HTML?我不能使用amp iframe,因为amp iframe不能位于视口的前75%范围内,并且必须距离顶部

我正在将现有的HTML转换为AMP-HTML。在较旧的HTML中,我正在加载
页脚
页眉
,它们位于单独的HTML文件中,这些文件是使用jquery加载的,如下代码所述

$("#divHeader").load('../header.html');

$("#divFooter").load('../footer.html');

这些HTML只有静态数据。有没有办法在AMP页面中添加这些HTML?我不能使用amp iframe,因为amp iframe不能位于视口的前75%范围内,并且必须距离顶部600px,如本文所述。

amp不能包含任何类型的外部
样式表
脚本
。对于HTML文件,您可能已经使用HTML部分来加载。但是在AMP页面的情况下,您不能包含它,您必须在AMP中显式地编写页眉和页脚

在官方文件中,在HTML标记标题下,指定

除非类型为application/ld+json,否则禁止使用脚本。(可根据需要添加其他非可执行值。)例外情况是加载AMP运行时的强制脚本标记和加载扩展组件的脚本标记


如果您使用的是PHP,或者您能够将页面转换为PHP,则可以使用include或require语句

<?php include_once('path/to/file.php'); ?>

<?php require_once('path/to/file.php'); ?>


include和require之间的主要区别是,如果存在错误,include将输出错误并继续呈现页面。Require将在出现错误时停止。_once只是确保在每次页面加载时调用它一次。通常不需要,但我通常只是为了安全才这样做。

使用
amp-iframe
amp-list
可能是可行的,但除此之外,这是不可能的

制作两个不同的HTML文件,其中一个存储页眉,另一个存储页脚。尝试使用
amp-iframe
amp-list
分别加载它们。我试着亲自做这件事,但做不到,但我知道过去有人做过


最好。

在您的情况下,您使用带占位符的iframe,这项工作在AMP中是否有可能在静态站点构建期间执行这些包含?您使用的确切技术堆栈是什么?您使用什么SSG?最好在站点构建期间执行此类包含,而不是在运行时。