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?

basagabi
sumber
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

DilipGurung
sumber
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
Jake Pucan
sumber
11

silakan coba perintah di bawah ini:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache
Mosam Prajapati
sumber
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

Saat ini tidak ada tampilan: perintah yang jelas. Untuk laravel 4 ini mungkin dapat membantu Anda: https://gist.github.com/cjonstrup/8228165

Menonaktifkan caching dapat dilakukan dengan melompati blade. Caching tampilan dilakukan karena kompilasi blade setiap kali adalah buang-buang waktu.

ArjanSchouten
sumber
Saya mendapat penjelasan yang bagus tentang hal ini di sini stackoverflow.com/questions/31455829/…
Rinto George
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.

Adam
sumber
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/

Hemant Kumar
sumber
1

gunakan perintah Di bawah ini di terminal

php artisan cache:clear
php artisan route:cache 
php artisan config:cache 
php artisan view:clear
Uddyan Semwal
sumber
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

lzoesch
sumber
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