Rumah > rangka kerja php > Laravel > teks badan

Bagaimana untuk mengosongkan cache fail statik laravel (kaedah terperinci)

PHPz
Lepaskan: 2023-04-07 17:22:49
asal
1054 orang telah melayarinya

Apabila membangunkan tapak web atau aplikasi menggunakan Laravel, fail statik sering digunakan untuk meningkatkan prestasi dan pengalaman pengguna tapak web. Fail statik ini biasanya termasuk CSS, JavaScript, imej, fon dan banyak lagi. Walau bagaimanapun, semasa proses pembangunan, kami sering menghadapi situasi di mana penyemak imbas masih menggunakan fail cache asal selepas mengubah suai fail statik, menyebabkan masalah dengan tapak web. Jadi, dalam artikel ini, kita akan bercakap tentang kaedah pembersihan cache untuk fail statik Laravel supaya anda boleh melihat kesannya serta-merta selepas mengubah suai fail statik.

Prinsip

Mula-mula, mari lihat cara penyemak imbas menyimpan fail statik. Penyemak imbas mencipta pengecam (ETag) untuk permintaan fail statik dan kemudian menyimpan pengecam ini ke cache bersama-sama dengan fail statik. Setiap kali penyemak imbas meminta fail yang sama sekali lagi, ia menghantar pelayan pengecam untuk fail dan menggunakan pengecam itu untuk mengesahkan cache. Jika pengecam sepadan, penyemak imbas akan menarik fail daripada cache.

Semasa caching penyemak imbas dilakukan secara setempat pada komputer pengguna, dalam aplikasi Laravel kita boleh mengganggu cache penyemak imbas dengan menukar URL fail statik atau menambah parameter pertanyaan lain. Ini bermakna setiap kali fail statik diubah suai, kami boleh menukar URLnya atau menambah parameter pertanyaan untuk memastikan penyemak imbas mendapat fail baharu dan bukannya menggunakan fail lama yang dicache.

Seterusnya, kita akan lihat bagaimana untuk mencapai ini.

Kaedah pembersihan cache fail statik Laravel

Kaedah 1: Tukar URL secara manual atau tambah parameter pertanyaan

Menukar URL fail statik secara manual atau menambah parameter pertanyaan adalah mudah Kaedah pembersihan cache. Sebagai contoh, apabila merujuk fail CSS, kita boleh menukar URLnya kepada:

<link rel="stylesheet" href="style.css?v=1">
Salin selepas log masuk

Ini memberitahu penyemak imbas untuk menambah ?v=1 sebagai parameter pertanyaan apabila meminta fail. Jika kami ingin mengemas kini fail, kami boleh menukar parameter pertanyaan kepada ?v=2 atau sebarang nilai lain. Setiap kali fail diubah suai, URL perlu dikemas kini atau parameter pertanyaan baharu ditambah.

Walaupun kaedah ini agak mudah, ia memerlukan mengemas kini URL setiap fail secara manual atau menambah parameter pertanyaan, yang sangat memakan masa dan susah payah.

Kaedah 2: Gunakan Campuran dan kawalan versi

Laravel Mix ialah alat binaan bahagian hadapan untuk Laravel, yang membolehkan anda menggunakan banyak alatan bahagian hadapan yang popular untuk menyusun, memampatkan dan pakej CSS, JavaScript, imej dan fail fon. Campuran boleh membantu anda menjana URL fail statik secara automatik dan menukar nombor versi pada setiap binaan untuk memastikan penyemak imbas mendapat fail terkini.

Untuk menggunakan Mix, kita perlu memasang Laravel Mix terlebih dahulu:

npm install laravel-mix --save-dev
Salin selepas log masuk

Kemudian, tentukan fail statik dan versi dalam fail webpack.mix.js:

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css')
   .version();
Salin selepas log masuk

Jalankan npm run dev atau npm run prod boleh menjana fail dengan nombor versi. Contohnya, jika kita menyusun fail app.css, ia akan menjana fail app.css?id=48d24b, dengan 48d24b ialah cincangan fail tersebut. Setiap kali fail diubah suai, Laravel Mix akan menjana versi baharu dengan nilai cincang baharu.

Untuk menggunakan URL fail statik hasil campuran dalam fail HTML, anda boleh menggunakan kod berikut:

<link rel="stylesheet" href="{{ mix(&#39;css/app.css&#39;) }}">
Salin selepas log masuk

Ini akan menukar nama fail secara automatik kepada satu dengan nombor versi. Sebagai contoh, jika kita menjalankan npm run prod, kod di atas akan menjana hasil berikut:

<link rel="stylesheet" href="/css/app.css?id=48d24b">
Salin selepas log masuk

Dengan menggunakan Laravel Mix, kita tidak perlu menukar URL fail secara manual atau menambah parameter pertanyaan . Laravel Mix akan menjana nombor versi baharu secara automatik untuk kami dan menukar URL fail statik.

Kaedah 3: Gunakan perisian tengah mengosongkan cache

perisian tengah mengosongkan cache Laravel membolehkan kami mengosongkan cache penyemak imbas pada setiap permintaan. Untuk menggunakan perisian tengah penghapus cache, kita boleh mencipta kod berikut dalam app/Http/Middleware/CacheControl.php:

<?php

namespace App\Http\Middleware;

use Closure;

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

        $response->header('Cache-Control', 'nocache, no-store, max-age=0, must-revalidate');
        $response->header('Pragma', 'no-cache');
        $response->header('Expires', 'Fri, 01 Jan 1990 00:00:00 GMT');

        return $response;
    }
}
Salin selepas log masuk

Kemudian, daftarkan perisian tengah dalam app/Http/Kernel.php:

protected $middleware = [
    // ...
    \App\Http\Middleware\CacheControl::class,
];
Salin selepas log masuk

Sekarang, setiap Setiap masa penyemak imbas meminta fail statik, ia akan menghantar permintaan baharu kepada pelayan dan bukannya menggunakan cache, memastikan kami sentiasa mendapat fail terkini.

Ringkasan

Dengan menukar URL fail statik atau menambah parameter pertanyaan secara manual, menggunakan Laravel Mix atau menggunakan perisian tengah pembersihan cache, kami boleh mengosongkan fail cache dalam aplikasi Laravel dengan berkesan dan memastikan Pengguna sentiasa melihat kandungan terkini.

Cuba kaedah yang berbeza dan pilih kaedah yang paling sesuai dengan keperluan anda untuk menguruskan pembersihan cache fail statik. Tidak kira kaedah yang anda gunakan, anda harus sentiasa sedar tentang kesan caching untuk memastikan tapak web anda sentiasa mengekalkan prestasi dan pengalaman pengguna yang baik.

Atas ialah kandungan terperinci Bagaimana untuk mengosongkan cache fail statik laravel (kaedah terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan