繁体   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