Laravel 5 Hapus Tampilan Cache


168

Saya perhatikan bahwa tampilan cache Laravel disimpan di ~/storage/framework/views.Seiring waktu, mereka dapat memakan ruang saya. Bagaimana cara saya menghapusnya? Apakah ada perintah yang bisa? Saya mencoba php artisan cache:clear,tetapi tidak membersihkan cache view. Dengan itu, saya harus menghapus file secara manual di folder tersebut.

Juga, bagaimana cara menonaktifkan cache view?


3
"Lembur, mereka bisa memakan tempat saya." Tidak sepertinya. Aplikasi Laravel besar yang saya kelola memiliki sekitar 300KB tampilan cache untuk sekitar 500 rute. Anda tidak akan pernah kehabisan karena cached views pada server modern mana pun.
ceejayoz

3
Tetapi masalahnya adalah bahwa penyedia hosting saya tidak dibatasi oleh penggunaan ruang disk. Sebaliknya, itu dibatasi oleh jumlah file yang Anda miliki. Jadi itu masalah bagi saya.
basagabi

5
Itu aneh, dan ratusan file pasangan Anda storage/framework/viewsberada di sebelah ribuan file di dalamnya vendor. Dapatkan host yang tidak memiliki batasan gila seperti itu. Membatasi dengan jumlah file? WTF ?!
ceejayoz

Bisakah Anda merekomendasikan hosting yang bagus untuk itu? Lebih disukai berbagi hosting. Saya tidak yakin apakah saya diizinkan membagikan nama penyedia hosting saya saat ini. Tapi itu adalah perusahaan besar.
basagabi

1
Saya akan pergi ke suatu tempat seperti Heroku jika Anda tidak terlalu teknis, atau Amazon Web Services jika Anda melakukannya. Jika host Anda saat ini benar-benar membatasi jumlah file dan bukan total ruang yang digunakan, mereka gila.
ceejayoz

Jawaban:


278

Sekarang ada php artisan view:clearperintah untuk tugas ini sejak Laravel 5.1


Senang mengetahui hal itu. Satu hal yang saya perhatikan, seiring waktu, cache di bawah folder views akan dihapus. Apakah ada sesuatu dalam kode yang menghapusnya dalam xx hari?
basagabi

Saya percaya ini sudah ada sedikit lebih lama dari itu :)
Oddman

29

Untuk mendapatkan semua perintah tukang, ketik ...

php artisan

Jika Anda ingin menghapus cache, gunakan saja:

php artisan view:clear

Jika Anda tidak tahu cara menggunakan perintah artisan tertentu, tambahkan saja "bantuan" (lihat di bawah)

php artisan help view:clear

11

silakan coba perintah di bawah ini:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

2
Pembuat yakin jika Anda artisan config:cachebahwa semua.env variabel Anda diakses melalui config(), tidak env()atau mereka akan nol.
FlashJordan

1
@ FlashJordan Saya berharap saya akan membaca komentar Anda sebelum menjalankan config: cache. lol. Untuk orang lain yang menjalankan config: cache sama seperti saya, hapus saja config.php dari bootstrap / cache.
Tarek Adam


6

Untuk menjawab pertanyaan tambahan Anda, bagaimana menonaktifkan cache tampilan:

Anda dapat melakukan ini dengan secara otomatis menghapus file dalam folder untuk setiap permintaan dengan perintah yang php artisan view:cleardisebutkan oleh DilipGurung. Ini adalah contoh kelas Middleware dari https://stackoverflow.com/a/38598434/2311074

<?php
namespace App\Http\Middleware;

use Artisan;
use Closure;

class ClearViewCache
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (env('APP_DEBUG') || env('APP_ENV') === 'local') 
            Artisan::call('view:clear');

        return $next($request);
    }
}

Namun Anda dapat mencatat bahwa Larevel akan mengkompilasi ulang file di folder / app / storage / views kapan pun waktu pada file tampilan lebih awal daripada waktu pada file blade PHP untuk tata letak. Oleh karena itu, saya tidak dapat benar-benar memikirkan skenario di mana ini perlu dilakukan.


2

Hapus Cache di Laravel (Terminal)

Bersihkan Cache Aplikasi

php artisan cache:clear

Hapus cache rute

php artisan route:clear

Hapus cache konfigurasi

php artisan config:clear 

Hapus file tampilan yang dikompilasi

php artisan view:clear 

Hapus Cache di Browser Sebagian besar penyedia hosting bersama tidak menyediakan akses SSH ke sistem. Dalam hal ini, Anda dapat menghapus cache Laravel dengan memanggil URL di browser. Anda cukup menempatkan kode di bawah ini di rute / web.php Anda.

Route::get('/clear-cache', function() {
    Artisan::call('cache:clear');
    return "Cache is cleared";
});

Inilah tautan sumber daya https://tecadmin.net/clear-cache-laravel-5/


1

gunakan perintah Di bawah ini di terminal

php artisan cache:clear
php artisan route:cache 
php artisan config:cache 
php artisan view:clear

0

Berikut adalah penolong yang saya tulis untuk mengatasi masalah ini untuk proyek saya. Itu membuatnya super sederhana dan mudah untuk dapat membersihkan semuanya dengan cepat dan dengan satu perintah.

https://github.com/Traqza/clear-everything


Lihatlah namespace yang digunakan. pastikan itu di jalur folder yang benar, atau jika Anda telah mengubahnya. pastikan Anda memperbaruinya sesuai. @samjadps
lzoesch

Saya memperbarui namespace di ujung saya. Seharusnya sekarang bekerja untuk Anda tanpa melakukan apa pun. Pastikan saja pengaturannya ada di folder konsol / perintah.
lzoesch
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.