label-li / laravel-page-cache
Laravel PHP 静态页面缓存
1.1.7
2021-08-15 15:00 UTC
Requires
- php: ^7.3|^8.0
- laravel/framework: ^v8.0.0
This package is auto-updated.
Last update: 2024-09-17 10:06:57 UTC
README
本包允许您轻松地将响应缓存为磁盘上的静态文件,以实现闪电般的页面加载。
本包可以将静态PHP页面缓存到本地磁盘,以提供快速的页面加载。
简介
如果有很多访客,加上页面加载包含大量逻辑和从数据库中加载大量内容,这将非常耗费资源。页面缓存可以减少加载。
安装
- 使用 composer 安装包
composer require label-li/laravel-page-cache
- 将配置发布到
config/pagecache.config
php artisan vendor:publish --provider="LabelLi\LaravelPageCache\PageCacheServiceProvider"
中间件
如果您想在中间件
web
中缓存所有路由,即所有HTTP流量
- 打开
app/Http/Kernel.php
- 将
\LabelLi\LaravelPageCache\Middleware\CacheResponse::class,
作为新行添加到web
中间件组
protected $middlewareGroups = [ 'web' => [ \LabelLi\LaravelPageCache\Middleware\CacheResponse::class, ... ], ];
如果您想缓存特定的路由
page-cache
- 打开
app/Http/Kernel.php
- 将
'page-cache' => \LabelLi\LaravelPageCache\Middleware\CacheResponse::class,
作为新行添加到$routeMiddleware
protected $routeMiddleware = [ 'page-cache' => \LabelLi\LaravelPageCache\Middleware\CacheResponse::class, ... ];
配置
将 config/pagecache.php
中的值更改为您想要的值
'CacheTime' => 3600, // In seconds 'CachePath' => 'pagecache', // In storage
使用方法
使用中间件
如果您选择缓存特定的路由,例如
page-cache
,请按以下方式使用page-cache
中间件
Route::middleware('page-cache')->get('/page', 'PageController@show');
/page
将被缓存到 storage/**$CachePath**
目录下的文件中。
清除缓存
缓存将在 config/pagecache.php
中设置的 CacheTime
时清除。默认为 3600 秒。
如果您想手动清除,请运行以下命令
php artisan PageCache:clear
您可以选择向命令传递URL别名,仅删除特定页面的缓存
php artisan PageCache:clear {slug}
要清除给定路径下的所有内容,请使用 --recursive
标志
php artisan PageCache:clear {slug} --recursive
备注
如果控制台功能不起作用,很可能是缓存文件夹的权限问题。请使用 ls -la
检查权限。
致谢
感谢 Joseph Silber。直接在中间件中运行缓存功能的想法来自他的 包。他的包非常好,但我有不同的使用方式。因此,我编写了另一个页面缓存包来实现我的使用。