Xóa bộ nhớ cache của Laravel 5


167

Tôi nhận thấy rằng các chế độ xem bộ đệm của Laravel được lưu trữ theo ~/storage/framework/views.thời gian, chúng sẽ ăn hết dung lượng của tôi. Làm thế nào để tôi xóa chúng? Có lệnh nào có thể? Tôi đã thử php artisan cache:clear,nhưng nó không xóa bộ đệm xem. Cùng với đó, tôi phải xóa thủ công các tệp trong thư mục đã nói.

Ngoài ra, làm thế nào để tôi vô hiệu hóa bộ nhớ đệm xem?


3
"Làm thêm giờ, họ sẽ ăn hết không gian của tôi." Không có khả năng. Một ứng dụng Laravel lớn mà tôi duy trì có khoảng 300KB lượt xem được lưu trong bộ nhớ cache cho khoảng 500 tuyến. Bạn sẽ không bao giờ hết do lượt xem được lưu trong bộ nhớ cache trên bất kỳ máy chủ hiện đại nào.
ceejayoz

3
Nhưng vấn đề là nhà cung cấp dịch vụ lưu trữ của tôi không bị giới hạn bởi việc sử dụng dung lượng đĩa. Thay vào đó, nó bị giới hạn bởi số lượng tệp mà bạn có. Vì vậy, nó là một vấn đề đối với tôi.
basagabi 20/03/2015

5
Điều đó thật kỳ quái, và vài trăm tệp của bạn storage/framework/viewskhông có gì bên cạnh hàng ngàn tệp trong đó vendor. Nhận một máy chủ không có những hạn chế điên rồ như thế. Giới hạn bởi số lượng tập tin? WTF?!
ceejayoz

Bạn có thể đề nghị một lưu trữ tuyệt vời cho điều đó? Tốt nhất là chia sẻ lưu trữ. Tôi không chắc chắn nếu tôi được phép chia sẻ tên của nhà cung cấp dịch vụ lưu trữ hiện tại của tôi. Đó là một công ty lớn, mặc dù.
basagabi 22/03/2015

1
Tôi sẽ đi với một nơi nào đó như Heroku nếu bạn không quá kỹ thuật hoặc Dịch vụ web Amazon nếu có. Nếu máy chủ hiện tại của bạn thực sự giới hạn số lượng tệp chứ không phải tổng dung lượng đã sử dụng, chúng sẽ mất trí.
ceejayoz

Câu trả lời:


278

Hiện tại đã có php artisan view:clearlệnh cho nhiệm vụ này kể từ Laravel 5.1


Thật tốt khi biết điều đó. Một điều tôi nhận thấy, theo thời gian, bộ đệm trong thư mục khung nhìn sẽ bị xóa. Có một cái gì đó trong mã xóa chúng trong xx ngày?
basagabi

Tôi tin rằng nó đã tồn tại lâu hơn thế một chút :)
Oddman

29

Để có được tất cả các lệnh thủ công, gõ ...

php artisan

Nếu bạn muốn xóa bộ nhớ cache, chỉ cần sử dụng:

php artisan view:clear

Nếu bạn không biết cách sử dụng lệnh thủ công cụ thể, chỉ cần thêm "trợ giúp" (xem bên dưới)

php artisan help view:clear

11

vui lòng thử lệnh dưới đây:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

2
Nhà sản xuất chắc chắn nếu bạn artisan config:cacherằng tất cả các .envbiến của bạn được truy cập thông qua config(), không env()hoặc chúng sẽ không có giá trị.
FlashJordan

1
@FlashJordan Tôi muốn đọc bình luận của bạn trước khi chạy config: cache. cười lớn. Đối với bất kỳ ai khác chạy config: cache một cách mù quáng như tôi đã làm, chỉ cần xóa config.php khỏi bootstrap / cache.
Tarek Adam

6

Ngay bây giờ không có xem: lệnh rõ ràng. Đối với laravel 4, điều này có thể giúp bạn: https://gist.github.com/cjonstrup/8228165

Vô hiệu hóa bộ nhớ đệm có thể được thực hiện bằng cách bỏ qua lưỡi dao. Xem bộ nhớ đệm được thực hiện bởi vì biên dịch lưỡi mỗi lần là một sự lãng phí thời gian.


Tôi đã có một lời giải thích tốt về vấn đề này ở đây stackoverflow.com/questions/31455829/
Khăn

6

Để trả lời câu hỏi bổ sung của bạn, làm thế nào để vô hiệu hóa bộ nhớ đệm xem:

Bạn có thể làm điều này bằng cách tự động xóa các tệp trong thư mục cho mỗi yêu cầu bằng lệnh php artisan view:clearđược đề cập bởi DilipGurung. Dưới đây là một ví dụ về lớp Middleware từ 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);
    }
}

Tuy nhiên, bạn có thể lưu ý rằng Larevel sẽ biên dịch lại các tệp trong thư mục / app / Storage / view bất cứ khi nào thời gian trên các tệp xem sớm hơn thời gian trên các tệp phiến PHP cho bố cục. Vì vậy, tôi thực sự không thể nghĩ ra một kịch bản mà điều này sẽ cần phải làm.


1

sử dụng lệnh Dưới đây trong thiết bị đầu cuối

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

1

Xóa bộ nhớ cache trong Laravel (Terminal)

Xóa bộ nhớ cache ứng dụng

php artisan cache:clear

Xóa bộ đệm tuyến

php artisan route:clear

Xóa bộ nhớ cache cấu hình

php artisan config:clear 

Xóa tập tin xem biên dịch

php artisan view:clear 

Xóa bộ nhớ cache trong trình duyệt Hầu hết các nhà cung cấp dịch vụ lưu trữ chia sẻ không cung cấp quyền truy cập SSH vào hệ thống. Trong trường hợp đó, bạn có thể xóa bộ nhớ cache của Laravel bằng cách gọi URL trong trình duyệt. Bạn chỉ có thể đặt mã dưới đây trong tuyến / web.php của bạn.

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

Đây là liên kết tài nguyên https://tecadmin.net/clear-cache-laravel-5/


0

Đây là một người trợ giúp mà tôi đã viết để giải quyết vấn đề này cho các dự án của tôi. Nó làm cho nó siêu đơn giản và dễ dàng để có thể xóa mọi thứ nhanh chóng và chỉ với một lệnh.

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


Hãy nhìn vào không gian tên được sử dụng. đảm bảo nó trong đường dẫn thư mục chính xác, hoặc nếu bạn đã thay đổi nó. hãy chắc chắn rằng bạn cập nhật nó cho phù hợp. @samjadps
lzoesch

Tôi đã cập nhật không gian tên vào cuối của tôi. Nên làm việc ngay bây giờ cho bạn mà không làm gì cả. Chỉ cần chắc chắn rằng nó được đặt trong thư mục console / Command.
lzoesch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.