我继承了一个使用doctype的Kentico 11站点
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">客户希望使用Kentico的AMP模块创建其页面的AMP变体,该模块使用任何AMP内容的子域。该模块还包括一个布尔宏{% AmpFilter.IsAmpPage() %},用于测试您当前是否正在提供AMP内容。https://github.com/Kentico/kentico-amp
我遇到的问题是AMP似乎想要一个doctype
<!doctype html>。我不想更改现有站点的doctype,但看起来我也不能计算母版页模板的doctype字段中的宏。
我想知道是否有人遇到过这样的问题;是否有一种方法可以允许在doctype字段中计算宏,或者其他一些我没有想到的方法。
发布于 2019-11-07 01:54:20
在添加HTML lang属性以支持WCAG 2.0指南时,也存在类似的问题。但是,HTML属性由系统文件PortalTemplate.aspx控制,该文件使用Kentico页面的XmlNamespace属性。为了解决这个问题,我们在母版页的布局属性中添加了服务器端代码。但是,也可以在添加到母版页的web部件中执行此操作。然后,您可以根据所选择的条件更改页面的XmlNamespace属性,而不是更改页面的DocType属性。这能满足你的需求吗?
<script runat="server">
/// Add Page_Load just to insert the "lang" attribute required by WCAG 2.0 Level A guidelines
protected void Page_Load(object sender, EventArgs e)
{
if (CurrentDocument != null)
{
CMS.UIControls.ContentPage page= this.Page as CMS.UIControls.ContentPage;
if (page != null)
{
System.Globalization.CultureInfo c= new System.Globalization.CultureInfo(CMS.Localization.LocalizationContext.CurrentCulture.CultureCode);
string lang= c.TwoLetterISOLanguageName;
page.XmlNamespace += " lang=\"" + lang + "\"";
page.XmlNamespace += " xml:lang=\"" + lang + "\"";
}
}
}
</script>麦克
https://stackoverflow.com/questions/58719316
复制相似问题