基于Laravel整页缓存功能的实现

2017-08-18 11:01:53

    由于本人的博客站,后期可能并不是频繁的更新文章,以及产生大量的数据变动什么的。所以我迫切的需要一个整页缓存方案,比如说把页面缓存成静态的html文件。Laravel内置的缓存,也就是Cache模块很是强大,但是好像并没有集成我需要的功能。


    通过google找到一个package,大体上能实现我的需求,当然实际使用过程中,是有些bug的,以后会发表一些修复过程的文章,暂且不表。


    下面是安装过程。


    首先在控制台执行

    composer require silber/page-cache:dev-master

    稍等片刻完成安装,然后在laravel中作相应的配置,在config/app.php中加入

    Silber\PageCache\LaravelServiceProvider::class,

    在app/Http/Kernel.php中$routeMiddleware加入

    'page-cache' => \Silber\PageCache\Middleware\CacheResponse::class,

    这样就完成了laravel框架的配置,然后需要配置一下nginx端,加入

location = / {    try_files /page-cache/pc__index__pc.html /index.php?$query_string;
}
location / {    try_files $uri $uri/ /page-cache/$uri.html /index.php?$query_string;
}

    然后需要建立/public/page-cache目录,给可写权限,然后加入.gitignore避免git跟踪

*
!.gitignore

    现在就完成了laravel整页缓存的所有配置。需要使用整页缓存的路由,只需要加入

'middleware' => 'page-cache',

    middleware即可

    清除缓存使用

php artisan page-cache:clear