episerver - 如何使用 Geta 站点地图排除包含文件夹中的特定子文件夹?
问题描述
如何从包含文件夹内的站点地图中排除与特定模式匹配的子文件夹?
例如,我希望排除所有符合以下条件的子文件夹:/Research/Content/Short-reports/*pptx/
虽然仍然包括所有其他文件夹:/Research/Content/Short-reports/
Geta 似乎忽略了我的通配符并将其视为文字。
TIA
解决方案
不幸的是,Geta 只进行字符串匹配,不会处理任何通配符/正则表达式。
Geta 确实建议您实现自己的 IContentFilter 以进行自定义过滤。
如果有问题的文件夹是 CMS 中的内容文件夹,则一种选择是在全局设置中创建一个 ContentArea 属性以保存对您希望排除的所有文件夹的引用。然后,在 IContentFilter 实现的 ShouldExcludeContent 方法中,您可以执行检查以查看内容是否是您添加到全局设置的文件夹之一的后代。
public class MyCustomSitemapContentFilter : Geta.SEO.Sitemaps.Utils.ContentFilter
{
public override bool ShouldExcludeContent(IContent content)
{
var baseEvaluation = base.ShouldExcludeContent(content);
var shouldExclude = false;
//shouldExclude = code to check if content is
// is descendant of any of the folders referenced
// in global setting property
return shouldExclude || baseEvaluation;
}
}
推荐阅读
- diagram - 通过拖动自动连接 mxgraph 中的元素
- laravel - 如何解决“Facebook 检测到 MyApp 未使用安全连接传输信息。” Laravel 中的错误
- javascript - 如何读取 $_POST 中针对一个参数以表单数据发送的多个值
- batch-file - 检查bat中是否存在函数
- python - 如何修复python中找不到的模块
- java - 如何在 printhelp 中显示一个选项可以被请求多次?
- python - 如何使用 python 多处理使类变量在 windows 和 linux 上的行为相同?
- curl - 如何修复 AWS EC2 卷曲错误 303 查看其他
- groovy - 如何从groovy中的地图中获取最后一个KEY?
- akka - 如何从入口返回值