[5.6] 新功能播报:增加一个 HTTP 头设置缓存中间件
这个中间件可以在设置路由的时候简单的设置来设置 HTTP 缓存头。
添加中间件
因为目前 Laravel 只是在 illuminate/http
中添加了这么一个中间件,但是并未添加到 laravel/laravel
的 app/Http/Kernel.php
中,所以暂时你需要手动添加到 protected $routeMiddleware
:
protected $routeMiddleware = [
'cache' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
];
使用
自定义 etag:
Route::get('/my-route', function () {
return view('welcome');
})->middleware('cache:max_age=180;s_maxage=60;etag=abc;immutable=true');
当然,你也可以使用 response 的 content 进行 md5 作为 etag:
Route::get('/my-route', function () {
return view('welcome');
})->middleware('cache:max_age=180;s_maxage=60;etag;immutable');
吐槽
虽然在应用层支持了设置缓存头信息,但是目前还没有支持在请求进入前进行一个良好的 If-Not-Match
处理。
本作品采用《CC 协议》,转载必须注明作者和本文链接
Seven 的代码太渣,欢迎关注我的新拓展包 medz/cors 解决 PHP 项目程序设置跨域需求。
本帖由 Summer
于 7年前 加精
这个 PR 是一个 Symfony 核心开发组员提交的