[英]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()));
});
}
}
问题可能是有人将日志文件提交到存储库中。 遵循这些
授予storage
文件的权限。
导航到终端中的项目文件夹
并运行chmod -R 755 storage/*
检查.gitignore
包含/storage/logs
路径。
不仅对在同一存储库中工作的每个人都支持您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.