Plone 的附加组件
项目描述
集体.splitsitemap
默认情况下,Plone 创建 1 个站点地图,遵循协议https://www.sitemaps.org/protocol.html
当项目数量超过 50.000 项时,大型网站会出现问题。该产品的主要目标是通过将其拆分为多个站点地图并提供站点地图索引文件来解决此问题。此外,它还提供了一些额外的高级功能。
特征
允许将站点地图拆分为多个站点地图,并提供站点地图索引
允许使用外部脚本生成站点地图
允许指定要包含在每个拆分站点地图中的项目数
允许决定是否在链接中自动添加“/view”
允许指定要忽略且不包含在站点地图中的门户类型
允许列出要忽略且不包含在站点地图中的特定路径
详细说明
控制面板
本产品提供了一个控制面板来配置不同的设置。它可以在 Plone 控制面板下找到,名称为“Split Sitemap Settings”(/@@splitsitemap-settings)。
拆分站点地图
此设置允许将站点地图拆分为多个站点地图并生成索引站点地图。每个站点地图中的项目数量可以使用“每个站点地图的项目”设置进行调整。当在您的站点中执行对“sitemap.xml.gz”的请求并启用此设置时,将生成多个站点地图并将其存储在请求站点地图的位置。该过程完成后,将向 sitemap.xml.gz 提供每个生成的站点地图的位置。
自动添加/查看
默认情况下,Plone 会在某些 URL 的末尾自动添加“/view”,特别是针对文件和图像。取消标记此复选框,可以防止这种行为发生,仅适用于站点地图中的链接。请注意,此设置仅根据 Plone 的配置方式阻止或允许自动添加“/view”。如果 Plone 没有在某些 URL 的末尾添加“/view”,则启用此设置将无效。
从脚本生成站点地图
此设置允许使用外部脚本生成站点地图,允许访问者和机器人简单地检索它而无需等待它生成。请注意,如果启用此设置并且脚本未配置为生成站点地图,那么访问者将收到一个空的 sitemap.xml.gz。关于脚本使用的详细信息可以在这个 README 中找到
指定不包括的内容类型
从此设置中,您可以选择在生成站点地图时完全忽略和不包括在内的内容类型。
忽略的路径
此设置允许列出要从站点地图中忽略的特定路径。请注意,此路径是站点根目录的绝对路径。如果路径是文件夹,您可以在路径末尾添加“:-1”,以忽略该路径及其所有子路径。例如,假设此设置配置为:
/foo:-1 /bar
这意味着 /foo 和其中的所有内容都不会包含在站点地图中。此外 /bar 也将被排除,但是如果 /bar 是文件夹,则不会排除其子项
外部脚本
该产品提供了一个新的 zopectl 命令,允许使用 cronjob 或类似机制异步生成站点地图。请注意,如果未启用“从脚本生成站点地图”设置,则运行此脚本不会以任何方式改进站点地图的生成。该命令为“generate_sitemaps”,其用法如下:
./bin/instance generate_sitemaps
该脚本提供了 4 个可选参数:
日志文件
plone_site
导航根
server_url
日志文件
指定用于记录站点地图生成过程的文件
plone_site
指定 Plone 站点的 ID。如果未提供,脚本将使用它找到的第一个 Plone 站点。
server_url
此设置允许您在站点地图中生成正确的 URL。从脚本运行任务时,Plone 无法知道您站点的 FQDN 是什么,或者您的 Apache/Nginx 配置如何。使用此设置,您可以直接指定要包含在链接 URL 开头的站点 URL。如果省略,脚本将尝试使用“SERVER_URL”环境变量。
使用所有参数的示例
./bin/instance generate_sitemaps --log_file /path/to/sitemap.log --plone_site Plone --nav_root 文件夹-a --server_url https://my-great-site.org
安装
通过将collective.splitsitemap 添加到您的构建中来安装它:
[buildout] ... eggs = collective.splitsitemap
然后运行bin/buildout,最后从“附加组件”克隆控制面板安装它。
贡献
去做
编写测试
执照
该项目在 GPLv2 下获得许可。
贡献者
Enfold Systems, Inc.,信息@ enfoldsystems 。com
变更日志
1.0.0 (2020-09-25)
初始发行。[法佩尔]