thewebmen / silverstripe-staticpages
Silverstripe 静态页面缓存
1.0.17
2018-08-23 08:12 UTC
Requires
- silverstripe/cms: ^4.0@dev
- silverstripe/vendor-plugin: ^1.0
Requires (Dev)
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^3.0
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'] 是要缓存的查询参数数组。
待办事项
- 找到缓存带有查询参数的页面的更好方法