Laravel 5 Clear Views Önbellek


168

Laravel önbellek görünümlerinin saklandığını fark ettim Zamanla, yerimi ~/storage/framework/views.yiyebilirler. Onları nasıl silerim? Olabilecek herhangi bir komut var mı? Denedim php artisan cache:clear,ama görünüm önbelleğini temizlemiyor. Bununla, adı geçen klasördeki dosyaları el ile silmem gerekiyor.

Ayrıca, görünümlerin önbelleğe alınmasını nasıl devre dışı bırakabilirim?


3
"Fazla mesai, yerimi yeniyorlar." Olası olmayan. Ben korumak büyük bir Laravel uygulaması yaklaşık 500 güzergah için yaklaşık 300 KB önbellek görünümleri vardır. Herhangi bir modern sunucudaki önbellek görünümleri nedeniyle asla tükenmezsiniz.
ceejayoz

3
Ancak sorun, barındırma sağlayıcım disk alanı kullanımı ile sınırlamıyor olmasıdır. Bunun yerine, sahip olduğunuz dosya sayısı ile sınırlıdır. Bu benim için bir mesele.
Basagabi

5
Bu tuhaf ve içinde yüzlerce dosyanızın içindeki storage/framework/viewsbinlerce dosyanın yanında hiçbir şey yok vendor. Bunun gibi saçma bir sınırlama olmayan bir ev sahibi edinin. Dosya sayısına göre sınırlandırılıyor mu? O NE LAN?!
ceejayoz

Bunun için harika bir barındırma önerebilir misiniz? Tercihen barındırma paylaştı. Mevcut barındırma sağlayıcımın adını paylaşma iznim olup olmadığından emin değilim. Yine de büyük bir komedi.
15:34 basagabi

1
Çok teknik değilseniz Heroku veya Amazon Web Services gibi bir yere giderdim. Mevcut ana makineniz, kullanılan toplam alanı değil, dosya sayısını gerçekten sınırlarsa, bunlar delidir.
ceejayoz

Yanıtlar:


278

php artisan view:clearLaravel 5.1'den bu yana bu görev için bir komut var


Bunu bilmek iyi. Fark ettiğim bir şey, zamanla, görünümler klasörü altındaki önbellek silinir. Kodda xx gün içinde onları silen bir şey var mı?
basagabi

Bundan biraz daha uzun olduğuna inanıyorum :)
Oddman

29

Tüm esnaf komutunu almak için şunu yazın ...

php artisan

Görünüm önbelleğini temizlemek istiyorsanız, şunu kullanın:

php artisan view:clear

Belirli bir esnaf komutunu nasıl kullanacağınızı bilmiyorsanız "yardım" ekleyin (aşağıya bakın)

php artisan help view:clear

11

lütfen aşağıdaki komutu deneyin:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

2
Maker emin eğer artisan config:cacheo tüm senin içinde .envdeğişkenler aracılığıyla erişilir config()değil, env()ya da boş olacak.
FlashJordan

1
@FlashJordan Keşke config: cache komutunu çalıştırmadan önce yorumunuzu okudum. lol. Yaptığım gibi config: cache'yi körü körüne çalıştıran herkes için, config.php dosyasını bootstrap / cache'den silin.
Tarek Adam


6

Görünümlerin önbelleğe alınmasını nasıl devre dışı bırakacağınıza dair ek sorunuzu cevaplamak için:

php artisan view:clearDilipGurung tarafından belirtilen komutla her istek için klasördeki dosyaları otomatik olarak silerek bunu yapabilirsiniz. İşte https://stackoverflow.com/a/38598434/2311074 adresinden bir örnek Middleware sınıfı

<?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);
    }
}

Bununla birlikte, görünüm dosyalarındaki zaman, düzen için PHP blade dosyalarındaki zamandan daha önce olduğunda Larevel'in / app / storage / views klasöründeki dosyaları yeniden derleyeceğini unutmayın. Bu nedenle, bunun yapılması gereken bir senaryo düşünemiyorum.


2

Laravel'de Önbelleği Temizle (Terminal)

Uygulama Önbelleğini Temizle

php artisan cache:clear

Rota önbelleğini temizle

php artisan route:clear

Yapılandırma önbelleğini temizle

php artisan config:clear 

Derlenmiş görünüm dosyalarını temizle

php artisan view:clear 

Tarayıcıda Önbelleği Temizle Paylaşılan barındırma sağlayıcılarının çoğu sistemlere SSH erişimi sağlamaz. Bu durumda, tarayıcıdaki URL'yi arayarak Laravel önbelleğini temizleyebilirsiniz. Aşağıdaki kodu rotalarınıza / web.php dosyasına yerleştirebilirsiniz.

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

İşte https://tecadmin.net/clear-cache-laravel-5/ kaynak bağlantısı


1

terminalde Below komutunu kullan

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

0

İşte projem için bu sorunu çözmek için yazdığım bir yardımcı. Her şeyi hızlı ve tek bir komutla temizlemeyi süper basit ve kolay hale getirir.

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


Kullanılan ad alanına bir göz atın. doğru klasör yolunda olduğundan veya değiştirdiyseniz emin olun. uygun şekilde güncellediğinizden emin olun. @samjadps
lzoesch

Sonunda isim alanını güncelledim. Şimdi hiçbir şey yapmadan sizin için çalışmalı. Sadece konsol / komutlar klasöründe ayarlandığından emin olun.
lzoesch
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.