Laravel移除Cache-Control

Posted 懒牛拉车

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel移除Cache-Control相关的知识,希望对你有一定的参考价值。

碰到一个问题,网站上线后,需要移除Cache-Control,就是下面这个东西

方案1 失败

参考网址:https://stackoverflow.com/questions/51821563/laravel-5-how-to-set-cache-control-http-header-globally

修改 RouteServiceProvider.php

protected function mapWebRoutes()
{
    Route::middleware(\'web\')
        ->middleware(\'cache.headers:private;max_age=3600\') // added this line
        ->namespace($this->namespace)
        ->group(base_path(\'routes/web.php\'));
}

方案2 失败

修改.htaccess文件。添加如下内容
注意:需要apache开启mod_headers,否则可能出现500错误

  <IfModule mod_headers.c>
        Header unset Cache-Control
    </IfModule>
方案3 成功

新建中间件

php artisan make:middleware CheckResponse

修改handle方法如下

    public function handle($request, Closure $next) {
        $response = $next($request);
        $response->headers->remove(\'Cache-Control\');
        return $response;
    }

注册中间件CheckResponse。修改kernel.php

    protected $middlewareGroups = [
        \'web\' => [
            \\App\\Http\\Middleware\\EncryptCookies::class,
            \\Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse::class,
            \\Illuminate\\Session\\Middleware\\StartSession::class,
            // \\Illuminate\\Session\\Middleware\\AuthenticateSession::class,
            \\Illuminate\\View\\Middleware\\ShareErrorsFromSession::class,
            \\App\\Http\\Middleware\\VerifyCsrfToken::class,
            \\Illuminate\\Routing\\Middleware\\SubstituteBindings::class,
            \\App\\Http\\Middleware\\CheckResponse::class,
        ],

以上是关于Laravel移除Cache-Control的主要内容,如果未能解决你的问题,请参考以下文章

laravel安装完成后,访问public目录,显示一片空白怎么回事

laravel安装完成后,访问public目录,显示一片空白怎么回事

Laravel 5.1 移除控制器

从 Laravel 8.x 中移除前端脚手架

Laravel 5 & Vue 组件 – 从 URL 中移除 Public

请求头域 Cache-Control 不允许