{"id":830,"date":"2025-06-12T00:41:35","date_gmt":"2025-06-11T16:41:35","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/830.html"},"modified":"2025-06-12T00:41:35","modified_gmt":"2025-06-11T16:41:35","slug":"laravel%ef%bc%9a%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8gzip%e5%8e%8b%e7%bc%a9%e5%93%8d%e5%ba%94","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/830.html","title":{"rendered":"Laravel\uff1a\u5982\u4f55\u4f7f\u7528Gzip\u538b\u7f29\u54cd\u5e94"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>Laravel &#26159;&#19968;&#20010;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#24191;&#27867;&#29992;&#20110;&#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#12290;&#20026;&#20102;&#25552;&#39640;&#32593;&#31449;&#30340;&#24615;&#33021;&#21644;&#29992;&#25143;&#20307;&#39564;&#65292;&#21487;&#20197;&#21033;&#29992; Gzip &#21387;&#32553;&#26469;&#20943;&#23569;&#20256;&#36755;&#30340;&#25968;&#25454;&#37327;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#22312; Laravel &#20013;&#21551;&#29992; Gzip &#21387;&#32553;&#21709;&#24212;&#30340;&#27493;&#39588;&#65306;<\/p>\n<h3>1. &#25171;&#24320; <code>config\/app.php<\/code> &#25991;&#20214;<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#32534;&#36753; <code>config\/app.php<\/code> &#25991;&#20214;&#65292;&#25214;&#21040;&#24182;&#30830;&#20445; <code>'app' =&gt; env('APP_ENV', 'production')<\/code> &#36825;&#19968;&#34892;&#26159;&#27491;&#30830;&#30340;&#12290;<\/p>\n<h3>2. &#37197;&#32622; Gzip<\/h3>\n<p>&#22312; <code>config\/app.php<\/code> &#25991;&#20214;&#20013;&#28155;&#21152;&#25110;&#20462;&#25913; <code>compression<\/code> &#37197;&#32622;&#39033;&#65306;<\/p>\n<pre><code class=\"language-php\">'compression' =&gt; [\n    'enabled' =&gt; true,\n    'gzip' =&gt; true,\n],<\/code><\/pre>\n<h3>3. &#21019;&#24314;&#33258;&#23450;&#20041;&#20013;&#38388;&#20214;<\/h3>\n<p>&#20026;&#20102;&#30830;&#20445; Gzip &#21387;&#32553;&#21482;&#24212;&#29992;&#20110;&#29305;&#23450;&#30340;&#36335;&#30001;&#25110;&#25511;&#21046;&#22120;&#65292;&#20320;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#33258;&#23450;&#20041;&#20013;&#38388;&#20214;&#12290;<\/p>\n<h4>&#21019;&#24314;&#33258;&#23450;&#20041;&#20013;&#38388;&#20214;<\/h4>\n<p>&#22312; <code>app\/Http\/Middleware<\/code> &#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25991;&#20214; <code>CompressResponseMiddleware.php<\/code>&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpMiddleware;\n\nuse Closure;\nuse IlluminateSupportFacadesResponse;\n\nclass CompressResponseMiddleware\n{\n    public function handle($request, Closure $next)\n    {\n        if ($this-&gt;shouldCompressResponse($request)) {\n            return Response::make($next($request))-&gt;withHeaders([\n                'Content-Encoding' =&gt; 'gzip',\n            ]);\n        }\n\n        return $next($request);\n    }\n\n    private function shouldCompressResponse($request)\n    {\n        \/\/ &#26681;&#25454;&#38656;&#35201;&#28155;&#21152;&#36923;&#36753;&#26469;&#20915;&#23450;&#26159;&#21542;&#21387;&#32553;&#21709;&#24212;\n        \/\/ &#20363;&#22914;&#65292;&#21487;&#20197;&#26681;&#25454;&#35831;&#27714;&#22836;&#20013;&#30340; Accept-Encoding &#22836;&#26469;&#21028;&#26029;\n        return !in_array('gzip', $request-&gt;headers-&gt;get('Accept-Encoding'));\n    }\n}<\/code><\/pre>\n<h3>4. &#27880;&#20876;&#33258;&#23450;&#20041;&#20013;&#38388;&#20214;<\/h3>\n<p>&#22312; <code>app\/Http\/Kernel.php<\/code> &#25991;&#20214;&#20013;&#27880;&#20876;&#26032;&#21019;&#24314;&#30340;&#33258;&#23450;&#20041;&#20013;&#38388;&#20214;&#65306;<\/p>\n<pre><code class=\"language-php\">protected $routeMiddleware = [\n    \/\/ &#20854;&#20182;&#20013;&#38388;&#20214;...\n    'compress.response' =&gt; AppHttpMiddlewareCompressResponseMiddleware::class,\n];<\/code><\/pre>\n<h3>5. &#22312;&#36335;&#30001;&#19978;&#24212;&#29992;&#33258;&#23450;&#20041;&#20013;&#38388;&#20214;<\/h3>\n<p>&#22312;&#20320;&#30340;&#36335;&#30001;&#25991;&#20214;&#65288;&#20363;&#22914; <code>routes\/web.php<\/code>&#65289;&#20013;&#65292;&#23558;&#33258;&#23450;&#20041;&#20013;&#38388;&#20214;&#24212;&#29992;&#21040;&#38656;&#35201;&#21387;&#32553;&#21709;&#24212;&#30340;&#36335;&#30001;&#19978;&#65306;<\/p>\n<pre><code class=\"language-php\">Route::get('\/', function () {\n    return view('welcome');\n})-&gt;middleware('compress.response');<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65306;<\/p>\n<p><strong>app\/Http\/Middleware\/CompressResponseMiddleware.php<\/strong><\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpMiddleware;\n\nuse Closure;\nuse IlluminateSupportFacadesResponse;\n\nclass CompressResponseMiddleware\n{\n    public function handle($request, Closure $next)\n    {\n        if ($this-&gt;shouldCompressResponse($request)) {\n            return Response::make($next($request))-&gt;withHeaders([\n                'Content-Encoding' =&gt; 'gzip',\n            ]);\n        }\n\n        return $next($request);\n    }\n\n    private function shouldCompressResponse($request)\n    {\n        \/\/ &#26681;&#25454;&#38656;&#35201;&#28155;&#21152;&#36923;&#36753;&#26469;&#20915;&#23450;&#26159;&#21542;&#21387;&#32553;&#21709;&#24212;\n        \/\/ &#20363;&#22914;&#65292;&#21487;&#20197;&#26681;&#25454;&#35831;&#27714;&#22836;&#20013;&#30340; Accept-Encoding &#22836;&#26469;&#21028;&#26029;\n        return !in_array('gzip', $request-&gt;headers-&gt;get('Accept-Encoding'));\n    }\n}<\/code><\/pre>\n<p><strong>config\/app.php<\/strong><\/p>\n<pre><code class=\"language-php\">'compression' =&gt; [\n    'enabled' =&gt; true,\n    'gzip' =&gt; true,\n],<\/code><\/pre>\n<p><strong>routes\/web.php<\/strong><\/p>\n<pre><code class=\"language-php\">Route::get('\/', function () {\n    return view('welcome');\n})-&gt;middleware('compress.response');<\/code><\/pre>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#21487;&#20197;&#22312; Laravel &#20013;&#25104;&#21151;&#21551;&#29992; Gzip &#21387;&#32553;&#21709;&#24212;&#65292;&#20174;&#32780;&#25552;&#39640;&#32593;&#31449;&#30340;&#24615;&#33021;&#21644;&#29992;&#25143;&#20307;&#39564;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#22312;&#29616;&#20195;&#30340;&#32593;&#32476;&#19978;&#65292;&#24615;&#33021;&#23545;&#20110;&#25552;&#39640;&#29992;&#25143;&#20307;&#39564;&#21644;&#25628;&#32034;&#24341;&#25806;&#25490;&#21517;&#33267;&#20851;&#37325;&#35201;&#12290;&#20026;&#20102;&#20248;&#21270;&#24744;&#30340;Web&#24212;&#29992;&#31243;&#24207;&#21152;&#36733;&#26102;&#38388;&#65292;&#21487;&#20197;&#20351;&#29992;Gzip&#21387;&#32553;&#21709;&#24212;&#12290;Laravel&#20316;&#20026;&#19968;&#27454;&#24378;&#22823;&#30340;PHP&#26694;&#26550;&#65292;&#25552;&#20379;&#20102;&#22810;&#31181;&#26426;&#21046;&#26469;&#21551;&#29992;Gzip&#21387;&#32553;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#19968;&#27493;&#27493;&#25351;&#23548;&#24744;&#22914;&#20309;&#35774;&#32622;Gzip&#21387;&#32553;&#65292;&#22312;Laravel&#24212;&#29992;&#20013;&#25552;&#21319;&#20854;&#25928;&#29575;&#21644;&#36895;&#24230;&#12290;<\/p><h2>Gzip&#21387;&#32553;&#26159;&#19968;&#31181;&#24120;&#35265;&#30340;&#25968;&#25454;&#21387;&#32553;&#25216;&#26415;&#65292;&#23427;&#20351;&#29992;gzip&#31639;&#27861;&#26469;&#20943;&#23569;&#25991;&#20214;&#30340;&#22823;&#23567;&#12290;&#36825;&#20010;&#36807;&#31243;&#36890;&#24120;&#22312;&#32593;&#39029;&#26381;&#21153;&#22120;&#19978;&#23436;&#25104;&#65292;&#20197;&#20415;&#29992;&#25143;&#21487;&#20197;&#20174;&#32593;&#32476;&#19978;&#26356;&#24555;&#22320;&#19979;&#36733;&#36825;&#20123;&#25991;&#20214;&#12290; gzip&#21387;&#32553;&#21487;&#20197;&#26174;&#33879;&#20943;&#23567;&#32593;&#39029;&#21644;&#20854;&#23427;&#25991;&#20214;&#30340;&#20256;&#36755;&#26102;&#38388;&#65292;&#20174;&#32780;&#25552;&#39640;&#29992;&#25143;&#20307;&#39564;&#12290;<\/h2><p>gzip&#26159;&#19968;&#31181;&#25991;&#20214;&#26684;&#24335;&#21644;&#29992;&#20110;&#25991;&#20214;&#21387;&#32553;&#19982;&#35299;&#21387;&#32553;&#30340;&#36719;&#20214;&#24212;&#29992;&#31243;&#24207;&#12290;&#22312;&#24212;&#29992;&#20110;&#32593;&#39029;&#24212;&#29992;&#26102;&#65292;&#23427;&#20250;&#22312;&#21457;&#36865;&#21040;&#27983;&#35272;&#22120;&#20043;&#21069;&#21387;&#32553;&#32593;&#31449;&#30340;&#20869;&#23481;&#65292;&#28982;&#21518;&#22312;&#23458;&#25143;&#31471;&#35299;&#21387;&#32553;&#36825;&#20123;&#20869;&#23481;&#20197;&#36827;&#34892;&#28210;&#26579;&#12290;&#36825;&#20010;&#36807;&#31243;&#20943;&#23569;&#20102;&#20174;&#26381;&#21153;&#22120;&#20256;&#36755;&#21040;&#23458;&#25143;&#31471;&#30340;&#25968;&#25454;&#37327;&#65292;&#20174;&#32780;&#21152;&#24555;&#20102;&#21152;&#36733;&#26102;&#38388;&#12290;<\/p><h2>&#22312;Laravel&#20013;&#21551;&#29992;Gzip&#21387;&#32553;&#12290;<\/h2><h3>&#22522;&#26412;&#37197;&#32622;<\/h3><p>&#39318;&#20808;&#65292;&#22312;&#20351;&#29992;Gzip&#21387;&#32553;&#36827;&#34892;Laravel&#30340;&#21387;&#32553;&#26102;&#65292;&#25105;&#20204;&#38656;&#35201;&#30830;&#20445;&#25105;&#20204;&#30340;Web&#26381;&#21153;&#22120;&#21551;&#29992;&#20102;mod_deflate&#25110;mod_gzip&#27169;&#22359;&#12290;&#23545;&#20110;Apache&#26381;&#21153;&#22120;&#65292;&#21487;&#20197;&#36890;&#36807;&#22312;&#24744;&#30340;&#37197;&#32622;&#25991;&#20214;&#20013;&#28155;&#21152;&#20197;&#19979;&#34892;&#26469;&#21551;&#29992;mod_deflate&#65306;\n&lt;IfModule mod_deflate.c&gt;\n AddOutputFilterByType DEFLATE text\/html text\/plain text\/xml text\/css application\/x-javascript\n&lt;\/IfModule&gt;\n&#35831;&#27880;&#24847;&#65292;&#36825;&#21482;&#26159;&#19968;&#20010;&#31034;&#20363;&#65292;&#24744;&#21487;&#33021;&#38656;&#35201;&#26681;&#25454;&#24744;&#30340;&#20855;&#20307;&#38656;&#27714;&#21644;&#29615;&#22659;&#35843;&#25972;&#36825;&#20123;&#35774;&#32622;&#12290;<code>.htaccess<\/code>&#25991;&#20214;&#65306;<\/p><pre><code>&lt;IfModule mod_deflate.c&gt;\n    AddOutputFilterByType DEFLATE text\/plain\n    AddOutputFilterByType DEFLATE text\/html\n    AddOutputFilterByType DEFLATE text\/xml\n    AddOutputFilterByType DEFLATE text\/css\n    AddOutputFilterByType DEFLATE application\/xml\n    AddOutputFilterByType DEFLATE application\/xhtml+xml\n    AddOutputFilterByType DEFLATE application\/rss+xml\n    AddOutputFilterByType DEFLATE application\/javascript\n    AddOutputFilterByType DEFLATE application\/x-javascript\n&lt;\/IfModule&gt;\n<\/code><\/pre><p>&#23545;&#20110;Nginx&#26381;&#21153;&#22120;&#65292;Gzip&#21387;&#32553;&#40664;&#35748;&#21551;&#29992;&#65292;&#20294;&#22312;nginx.conf&#25991;&#20214;&#20013;&#21487;&#20197;&#33258;&#23450;&#20041;&#35774;&#32622;&#65306;<\/p><pre><code>http {\n    gzip on;\n    gzip_types text\/plain text\/css application\/json application\/javascript text\/xml application\/xml application\/xml+rss text\/javascript;\n}\n<\/code><\/pre><h3>Laravel &#20013;&#38388;&#20214;&#65288;Middleware&#65289;&#26159;&#19968;&#31181; PHP &#30340;&#31867;&#65292;&#29992;&#20110;&#22312;&#24212;&#29992;&#31243;&#24207;&#30340;&#35831;&#27714;&#22788;&#29702;&#36807;&#31243;&#20013;&#25191;&#34892;&#29305;&#23450;&#30340;&#25805;&#20316;&#25110;&#36807;&#28388;&#12290;&#23427;&#20204;&#36890;&#24120;&#29992;&#20110;&#36523;&#20221;&#39564;&#35777;&#12289;&#25480;&#26435;&#12289;&#26085;&#24535;&#35760;&#24405;&#31561;&#12290;&#22312; Laravel &#20013;&#65292;&#20013;&#38388;&#20214;&#21487;&#20197;&#34987;&#23450;&#20041;&#20026;&#19968;&#20010;&#29420;&#31435;&#30340;&#31867;&#25110;&#32773;&#26041;&#27861;&#65292;&#28982;&#21518;&#36890;&#36807; app()-&gt;middleware() &#26041;&#27861;&#27880;&#20876;&#21040;&#24212;&#29992;&#23454;&#20363;&#20013;&#12290;\n&#20197;&#19979;&#26159;&#19968;&#20123;&#24120;&#35265;&#30340; Laravel &#20013;&#38388;&#20214;&#31867;&#22411;&#65306;\n\nAuth &#20013;&#38388;&#20214;&#65306;&#29992;&#20110;&#22788;&#29702;&#29992;&#25143;&#35748;&#35777;&#21644;&#25480;&#26435;&#12290;\nRequest &#20013;&#38388;&#20214;&#65306;&#29992;&#20110;&#22788;&#29702; HTTP &#35831;&#27714;&#12290;\nException &#20013;&#38388;&#20214;&#65306;&#29992;&#20110;&#25429;&#33719;&#24182;&#22788;&#29702;&#24322;&#24120;&#12290;\nSession &#20013;&#38388;&#20214;&#65306;&#29992;&#20110;&#31649;&#29702;&#20250;&#35805;&#25968;&#25454;&#12290;\nLog &#20013;&#38388;&#20214;&#65306;&#29992;&#20110;&#35760;&#24405;&#26085;&#24535;&#20449;&#24687;&#12290;\n\n&#20363;&#22914;&#65292;&#19968;&#20010;&#31616;&#21333;&#30340;&#30331;&#24405;&#39564;&#35777;&#20013;&#38388;&#20214;&#21487;&#33021;&#22914;&#19979;&#25152;&#31034;&#65306;\nclass LoginCheckMiddleware\n{\n public function handle($request, Closure $next)\n {\n \/\/ &#26816;&#26597;&#29992;&#25143;&#26159;&#21542;&#24050;&#30331;&#24405;\n if (! auth()-&gt;check()) {\n return redirect(&#8216;\/login&#8217;);\n }\n\n \/\/ &#22914;&#26524;&#29992;&#25143;&#24050;&#32463;&#30331;&#24405;&#65292;&#32487;&#32493;&#22788;&#29702;&#35831;&#27714;\n return $next($request);\n }\n}\n&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#22914;&#26524;&#29992;&#25143;&#26410;&#30331;&#24405;&#65292;&#21017;&#37325;&#23450;&#21521;&#21040;&#30331;&#24405;&#39029;&#38754;&#65307;&#22914;&#26524;&#29992;&#25143;&#24050;&#30331;&#24405;&#65292;&#21017;&#20801;&#35768;&#32487;&#32493;&#22788;&#29702;&#35831;&#27714;&#12290;&#20320;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#21019;&#24314;&#26356;&#22810;&#22797;&#26434;&#30340;&#20013;&#38388;&#20214;&#26469;&#23454;&#29616;&#21508;&#31181;&#21151;&#33021;&#12290;<\/h3><p>&#21478;&#19968;&#31181;&#21551;&#29992;Gzip&#21387;&#32553;&#30340;&#26041;&#27861;&#26159;&#22312;Laravel&#20013;&#20351;&#29992;&#20013;&#38388;&#20214;&#12290;&#20013;&#38388;&#20214;&#22312;HTTP&#35831;&#27714;&#19978;&#20316;&#20026;&#36807;&#28388;&#22120;&#65292;&#20320;&#21487;&#20197;&#21033;&#29992;&#23427;&#22312;&#21457;&#36865;&#21040;&#23458;&#25143;&#31471;&#20043;&#21069;&#21387;&#32553;&#21709;&#24212;&#12290;&#20351;&#29992;Artisan&#21629;&#20196;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#20013;&#38388;&#20214;&#65306;<\/p><pre><code>php artisan make:middleware CompressResponse<\/code><\/pre><p>&#19979;&#19968;&#27493;&#65292;&#22312;&#24744;&#21019;&#24314;&#30340;&#26032;&#26041;&#27861;&#30340;handle&#26041;&#27861;&#20013;&#28155;&#21152;&#20197;&#19979;&#20195;&#30721;&#12290;<code>CompressResponse<\/code>&#20013;&#38388;&#20214;&#65306;<\/p><pre><code>public function handle($request, Closure $next)\n{\n    $response = $next($request);\n\n    if (!$request-&gt;is('api\/*')) {  \/\/ Avoid compressing API routes\n        ob_start('ob_gzhandler');\n    }\n\n    return $response;\n}\n<\/code><\/pre><p>&#35831;&#35760;&#24471;&#22312;&#27880;&#20876;&#20013;&#38388;&#20214;&#26102;&#36827;&#34892;&#25805;&#20316;&#12290;<code>Kernel.php<\/code>&#35831;&#21442;&#38405;&#24182;&#23558;&#20854;&#28155;&#21152;&#21040;&#12290;<code>$middleware<\/code>array &#25110;&#32773; is the<code>$routeMiddleware<\/code>&#22914;&#26524;&#20320;&#24076;&#26395;&#20165;&#24212;&#29992;&#20110;&#29305;&#23450;&#36335;&#32447;&#65292;&#35831;&#24212;&#29992;&#23427;&#12290;<\/p><h3>&#27491;&#22312;&#27979;&#35797;Gzip&#21387;&#32553;&#12290;<\/h3><p>&#20026;&#20102;&#27979;&#35797;Gzip&#21387;&#32553;&#26159;&#21542;&#27491;&#30830;&#24037;&#20316;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992;&#22312;&#32447;&#24037;&#20855;&#22914;GTmetrix&#25110;Google PageSpeed Insights&#12290;&#36825;&#20123;&#24037;&#20855;&#20250;&#20026;&#24744;&#25552;&#20379;&#20851;&#20110;&#24744;&#21709;&#24212;&#20013;&#30340;&#21387;&#32553;&#24212;&#29992;&#24773;&#20917;&#20197;&#21450;&#23427;&#24102;&#26469;&#30340;&#24615;&#33021;&#25913;&#36827;&#30340;&#20449;&#24687;&#12290;<\/p><h2>&#39640;&#32423;GZIP&#37197;&#32622;<\/h2><h3>vary header<\/h3><p>&#22312;&#20351;&#29992;Gzip&#26102;&#65292;&#21478;&#19968;&#20010;&#26368;&#20339;&#23454;&#36341;&#26159;&#22312;&#21709;&#24212;&#20013;&#21253;&#21547;&ldquo;Vary: Accept-Encoding&rdquo;&#22836;&#12290;&#36825;&#21578;&#35785;&#20195;&#29702;&#32531;&#23384;&#21387;&#32553;&#21644;&#26410;&#21387;&#32553;&#30340;&#20869;&#23481;&#29256;&#26412;&#65292;&#22522;&#20110;&#35831;&#27714;&#30340;&ldquo;Accept-Encoding&rdquo;&#12290;&#24744;&#21487;&#20197;&#22312;&#27492;&#22788;&#35774;&#32622;&#27492;&#22836;&#65306;&#22312;Apache&#25110;Nginx&#37197;&#32622;&#25991;&#20214;&#20013;&#65292;&#22312;Laravel&#20013;&#38388;&#20214;&#20013;&#12290;<\/p><pre><code>$response-&gt;header('Vary', 'Accept-Encoding');<\/code><\/pre><h3>&#26465;&#20214;&#21387;&#32553;&#21709;&#24212;<\/h3><p>&#22312;&#26576;&#20123;&#24773;&#20917;&#19979;&#65292;&#20363;&#22914;&#24403;&#26381;&#21153;&#24050;&#21387;&#32553;&#30340;&#25991;&#20214;&#65288;&#22914;&#22270;&#20687;&#25110;PDF&#65289;&#26102;&#65292;Gzip &#21387;&#32553;&#21487;&#33021;&#26159;&#19981;&#24517;&#35201;&#30340;&#12290;&#24744;&#21487;&#20197;&#20462;&#25913;&#20013;&#38388;&#20214;&#20197;&#25490;&#38500;&#27492;&#31867;&#36335;&#30001;&#25110;&#25991;&#20214;&#31867;&#22411;&#36827;&#34892;&#21387;&#32553;&#65306;<\/p><pre><code>if (!$request-&gt;is('images\/*')) {  \/\/ skip compressing images\n    ob_start('ob_gzhandler');\n}<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#20351;&#29992;Gzip&#21387;&#32553;Laravel&#24212;&#29992;&#31243;&#24207;&#30340;&#21709;&#24212;&#21487;&#20197;&#23454;&#29616;&#26174;&#33879;&#30340;&#24615;&#33021;&#25552;&#21319;&#12290;&#24102;&#23485;&#33410;&#30465;&#24847;&#21619;&#30528;&#26356;&#24555;&#30340;&#21152;&#36733;&#26102;&#38388;&#21644;&#26356;&#22909;&#30340;&#29992;&#25143;&#20307;&#39564;&#12290;&#25353;&#29031;&#26412;&#25945;&#31243;&#20013;&#30340;&#27493;&#39588;&#24182;&#26681;&#25454;&#24212;&#29992;&#30340;&#20855;&#20307;&#38656;&#27714;&#35843;&#25972;&#21387;&#32553;&#35774;&#32622;&#65292;&#24744;&#24050;&#32463;&#25317;&#26377;&#20102;&#20805;&#20998;&#21033;&#29992;Gzip&#21387;&#32553;&#30340;&#24037;&#20855;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312; Laravel &#24212;&#29992;&#31243;&#24207;&#20013;&#21551;&#29992; GZIP &#21387;&#32553;&#65292;&#20320;&#21487;&#20197;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#25805;&#20316;&#65306;<\/p>\n<ol>\n<li>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#22312;&#39033;&#30446;&#30340; <code>config\/app.php<\/code> &#25991;&#20214;&#20013;&#37197;&#32622;&#20102; GZIP &#30340;&#27491;&#30830;&#36335;&#24452;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">'guzzlehttp\/guzzle',\n    'laravel\/framework',\n    'fideloper\/proxy'\n]\n<\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p>&#22312; Laravel &#24212;&#29992;&#31243;&#24207;&#30340;&#26681;&#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25991;&#20214;&#22841;&#65292;&#20363;&#22914; <code>resources\/views<\/code>, &#24182;&#22312;&#20854;&#20013;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; <code>index.blade.php<\/code> &#30340;&#26032;&#25991;&#20214;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#22312; <code>index.blade.php<\/code> &#20013;&#28155;&#21152;&#20197;&#19979;&#20195;&#30721;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">&lt;?php\n\n\/\/ ...\n\n$compressed = true;\nif (function_exists('gzencode')) {\n    $compressed = false;\n}\n?&gt;\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;title&gt;Gzip Compressed Response&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Welcome to Laravel!&lt;\/h1&gt;\n    &lt;?php if ($compressed): ?&gt;\n        &lt;script type=\"text\/javascript\"&gt;window.addEventListener(\"load\", function() { window.location.reload(); });&lt;\/script&gt;\n    &lt;?php else: ?&gt;\n        &lt;script type=\"text\/javascript\"&gt;window.onload = function() { window.location.reload(); };&lt;\/script&gt;\n    &lt;?php endif; ?&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<ol start=\"4\">\n<li>&#36816;&#34892;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#24182;&#26597;&#30475;&#27983;&#35272;&#22120;&#20013;&#30340;&#39029;&#38754;&#12290;&#20320;&#24212;&#35813;&#30475;&#21040;&#21709;&#24212;&#24050;&#32463;&#34987; GZIP &#20102;&#12290;<\/li>\n<\/ol>\n<p>&#36825;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312; Laravel &#24212;&#29992;&#31243;&#24207;&#20013;&#21551;&#29992; GZIP &#21387;&#32553;&#65292;&#24182;&#19988;&#23427;&#20250;&#22312;&#35831;&#27714;&#23436;&#25104;&#21518;&#33258;&#21160;&#21152;&#36733;&#21040;&#39029;&#38754;&#19978;&#12290;&#22914;&#26524;&#20320;&#38656;&#35201;&#26356;&#22797;&#26434;&#30340;&#35774;&#32622;&#25110;&#32773;&#26377;&#20854;&#20182;&#29305;&#23450;&#38656;&#27714;&#65292;&#35831;&#21578;&#35785;&#25105;&#65281;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; Laravel &#26159;&#19968;&#20010;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#24191;&#27867;&#29992;&#20110;&#26500;&#038;#24314..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-830","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=830"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=830"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=830"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}