簡體   English   中英

部署后不清除緩存時出錯

[英]Error if not clearing cache after deployment

在我的 Laravel 應用程序中,我有時想在不先清除緩存的情況下從 GitHub 中提取最新版本。

所以我只是這樣做:

git pull origin staging

但是每次我這樣做然后在瀏覽器中打開頁面時,我都會收到此錯誤:

ErrorException (E_WARNING)
file_put_contents(/path/to/laravel/storage/framework/cache/data/30/6c/306cbe845aa9840ab0c14a1cd4b5d83fd6728839): failed to open stream: Permission denied

但是,如果我只是做php artisan cache:clear此問題不會發生。

這並不理想,因為我有時希望在從 Git 中提取更改時保留緩存。 我們廣泛使用緩存(在每個請求上),如果我們必須在每次更新時清除它,這是一個性能問題。

例如,上次發生這種情況時,我唯一的更改是對視圖文件進行了更改。 無需弄亂現有的緩存。

如何在不清除緩存且不遇到錯誤的情況下從 Git 中提取更改?

我的存儲文件夾位於 laravel 文件夾之外。 這樣我就可以在更新項目時保留緩存和日志文件。

為此,我使用了一個自定義應用程序,其中存儲路徑在.env中定義。

<?php
namespace App;

use Illuminate\Foundation\Application;

class CustomApp extends Application
{
    public function __construct($basePath = null)
    {
        parent::__construct($basePath);

        $this->afterLoadingEnvironment(function () {
            $this->useStoragePath(env('STORAGE_PATH', storage_path()));
        });
    }
}

問題可能是有人將日志文件提交到存儲庫中。 遵循這些

  1. 授予storage文件的權限。

    導航到終端中的項目文件夾
    並運行chmod -R 755 storage/*

  2. 檢查.gitignore包含/storage/logs路徑。

不僅對在同一存儲庫中工作的每個人都支持您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM