我的Laravel应用程序默认 for each 站点返回Cache-Control: no-cache, private个HTTP头.我怎样才能改变这种行为?

附言:它不是PHP.ini问题,因为将session.cache_limiter更改为空/公共不会改变任何东西.

推荐答案

Laravel 5.5 <

你可以有一个全球性的中间件.比如:

<?php

namespace App\Http\Middleware;

use Closure;

class CacheControl
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        $response->header('Cache-Control', 'no-cache, must-revalidate');
        // Or whatever you want it to be:
        // $response->header('Cache-Control', 'max-age=100');

        return $response;
    }
}

然后在内核文件中将其注册为全局中间件:

protected $middleware = [
    ....
    \App\Http\Middleware\CacheControl::class
];

Laravel相关问答推荐

如何更改LIVE上的Filament占位符内容?

运行NPM Prod时出现VUE问题

将错误消息抛出并显示为关联数组

基于数据表 Laravel 4 导出 CSV 或 PDF

Laravel 附加额外字段

Mockery 和 Laravel 构造函数注入

PHP Laravel:如何设置或获取会话数据?

你如何找到 Laravel 外观背后的底层类?

Laravel 4 定义 RESTful 控制器

使用'with'时,Laravel belongsTo 返回 null

设置 Laravel 5.4 以使用 React

如何在新安装时指定 Lumen(或 Laravel)版本?

Cookie::forget 不工作 laravel 5.1

干预图像:直接从带有原始文件名和分机的网址保存图像?

数组的旧输入?

laravel:Eloquent的例子将数据插入数据库

Laravel Mail 发送Electron邮件但返回 false

调用未定义的方法 Illuminate\Routing\Route::get()

将 Laravel 集合排序为 ID 数组

无法在控制器的构造函数上调用 Auth::user()