thewebmen/silverstripe-staticpages

Silverstripe 静态页面缓存

安装: 157

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 13

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

1.0.17 2018-08-23 08:12 UTC

README

简介

为页面生成静态缓存,第一次访问需要缓存但没有缓存的页面时,会生成页面的缓存文件。

要求

  • SilverStripe CMS ^4.0

安装

composer require "thewebmen/silverstripe-staticpages"

运行任务:dev/tasks/install-staticpages

如何使用

默认情况下,该模块为所有 SiteTree 页面创建静态页面,您可以通过在页面对象上添加方法 "generatestatic" 并返回 false(如果该页面不需要静态版本)来更改此设置。示例

public function generatestatic(){
    if($this->URLSegment == 'contact-us'){
        return false;
    }
    return true;
}

如果您发布了包含静态更改的页面,系统将删除该页面的缓存以及通过可选的 "urlsAffectedByThisPage" 方法返回的所有页面,请确保该方法返回绝对 URL。示例

public function urlsAffectedByThisPage(){
    $children = SiteTree::get()->filter('ParentID', $this->ID);
    $urls = [];
    foreach($children as $child){
    $urls[] = $child->AbsoluteURL();
    }
    return $urls;
}

查看未缓存的版本

在预览模式下查看网站或向 URL 添加 ?skipcache=1 时,将提供未缓存的版本。

动态内容

如果您的页面包含动态内容或表单,则需要将其通过 Ajax 进行处理。

任务

有三个任务可供使用

  • dev/tasks/install-staticpages(创建 staticpages 文件夹,创建符号链接并修改 htaccess)
  • dev/tasks/staticpages(生成所有静态页面,通常不需要)
  • dev/tasks/flush-staticpages(删除所有生成的页面,模板更改后很有用)

清除缓存

您可以通过将 ?flush=1 或 ?flush=all 添加到 URL 来清除缓存,其中 all 删除所有静态缓存,1 仅删除当前页面的缓存。这仅适用于具有管理员权限的登录用户。

带有查询参数的页面

还可以缓存带有查询参数的页面,这对于分页页面特别有用。您可以通过在网站根目录中创建名为 staticpages_config.php 的文件并包含以下内容来实现此操作

<?php

$staticpages_config = [
    'query_params' => ['start']
];

其中 ['start'] 是要缓存的查询参数数组。

待办事项

  • 找到缓存带有查询参数的页面的更好方法