janit / ez-amp-bundle
提供加速移动页面(AMP)支持的eZ平台插件包
README
这是一个对eZ平台CMS的扩展,提供了加速移动页面(AMP)支持。
加速移动页面是谷歌为了加快移动浏览速度而发起的一项计划。AMP是一种基于HTML的开放标准。它通过限制功能来强制执行性能,并通过谷歌的远程缓存来允许快速嵌入到搜索结果中。
鉴于谷歌持续的统治地位,出版商和CMS供应商都需要考虑AMP。此插件包使得eZ Platform安装能够快速访问内容对象的AMP格式版本。
安装
安装类似于大多数Symfony插件包
使用Composer安装
composer require janit/ez-amp-bundle
这将从Packagist(ez-amp-bundle)下载并安装包到您的本地环境
更新AppKernel
打开应用程序内核并添加插件包
<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
new Janit\EzAmpBundle\EzAmpBundle(),
);
}
// ...
}
这将加载并启用eZ AMP插件包,在应用程序启动时。
添加路由
将以下内容添加到您的app/config/routing.yml
ez_amp:
resource: "@EzAmpBundle/Controller/"
type: annotation
prefix: /
这将加载提供自定义AMP内容生成的路由
添加内容头部链接(以使AMP页面可被发现)
为了启用发现,找到您的主布局模板,并在head
部分中输入以下片段
{% if content is defined %}
<link rel="amphtml" href="{{ url('ez_amp', {'objectId': content.versionInfo.contentInfo.id }) }}" />
{% endif %}
</head>
这将允许机器人自动发现您的AMP版本。
验证安装和故障排除
打开您的浏览器并导航到
http://example.com/ez-amp/1
这应该显示一个简单的首页版本,所有字段都被循环遍历。
在此之后,验证您的页面头部应该包含对AMP版本的引用
<link rel="amphtml" href="http://example.com/ez-amp/1337" />
AMP版本还应包含一个指向网站主版本的链接
<link rel="canonical" href="http://example.com/jared-leet-o" />
有了这些链接,搜索引擎爬虫现在将找到您内容页面的AMP版本。如果您在生产环境中这样做,那么谷歌移动搜索结果页面很快就会开始显示指向您的AMP版本的链接。
下一步,如果尚未这样做,请在谷歌网站管理员工具上验证您的网站,并跟踪AMP验证的状态。您可能遇到的错误之一是失败的图像,因为AMP不允许使用标准的HTML <img>
标签,而是使用自己的<amp-img>
标签。
<amp-img
src="/var/site/storage/images/8/8/2/0/288-8-eng-GB/blog3.jpg"
alt=""
width="1840"
height="1232"
layout="responsive">
</amp-img>
在某些情况下,此自定义图像标签模板可能无法正常渲染。如果这种情况发生在常规模板或嵌入模板中,建议查看您插件包的配置中的竞争field_templates
定义。
使用插件包继承覆盖
虽然此插件包旨在默认提供有效的AMP输出,但它目前非常原始。如果您想使用这个版本,您可以使用Symfony插件包继承来覆盖模板,以获得更令人愉悦的布局,并可能扩展您自定义网站所需的功能。
缺失的功能
还有一些事情应该添加到插件包中,以便使其功能完整,包括eZ平台和AMP方面的内容,其中一些包括
- 允许按内容类型配置模板
- 允许配置内容类型作为AMP提供
- 支持JSON-LD元数据
- 支持分析
- 支持广告
免责声明和许可
这只是一个业余项目,主要是练习。可能会有更新,也可能不会有更新。没有任何保证,但代码是在MIT许可证下提供的,因此您可以自由使用和滥用。
eZ Platform 现已更名为 Ibexa DXP
从版本 3.2 开始,eZ Platform(企业版)将被称为 Ibexa DXP 技术,这是三个产品的基座:Ibexa 内容、Ibexa 体验 和 Ibexa 商务。由于 Ibexa DXP 是 eZ Platform 的一次进化而非革命,此代码中的说明应适用。更多内容请参阅 Ibexa DXP v3.2 发布文章 和 Ibexa 开发者门户。