Php Laravel 5 show ErrorException file_put_内容无法打开流:没有这样的文件或目录
我有一个关于Laravel 5的项目,我在办公室和家里都在用它。它工作正常,但最近在家里它停止了工作。Laravel给我看两个错误Php Laravel 5 show ErrorException file_put_内容无法打开流:没有这样的文件或目录,php,windows,laravel,laravel-5,Php,Windows,Laravel,Laravel 5,我有一个关于Laravel 5的项目,我在办公室和家里都在用它。它工作正常,但最近在家里它停止了工作。Laravel给我看两个错误 file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php): failed to open stream: No such file or directory 及 我正在用谷歌搜索问题决策,并找到有关正确权利的信息。所有的建议都
file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php):
failed to open stream: No such file or directory
及
我正在用谷歌搜索问题决策,并找到有关正确权利的信息。所有的建议都是关于Linux的,但我在办公室和家里都在Windows中工作
当我试图清除应用程序缓存和视图缓存时,artisan告诉我-…清除。但是缓存数据和视图存在于存储器中
我如何解决这个问题
提前谢谢 您的composer文件可能有问题。你可以试试:
- composer安装根据 composer.lock(如果不存在,则创建composer.lock)
- 编写器更新始终重新生成composer.lock并安装 基于composer.json的可用软件包的最新版本
- composer dump autoload不会下载任何东西。它只是再生 需要包含在项目中的所有类的列表(autoload_classmap.php)。非常适合在项目中有新类时使用。理想情况下,您可以执行composer dump autoload-o,以便 更快地加载您的网页。它不是默认值的唯一原因是,它需要更长的时间生成(但只是稍微明显)
经过一些研究,我了解到-我有非常相似但不同的根项目位置及其在
/bootstrap/cache
中的缓存。缓存清除项目启动后 我遇到了类似的问题,因为第一台机器上的/storage
文件夹的.gitignore,然后第二台机器上克隆了存储库,laravel被修改为写下会话缓存
因此,手动创建文件夹
/storage/sessions
可能是一个解决方案 解决此问题的最佳方法是,转到目录laravel/bootstrap/cache
并删除config.php
文件。或者您也可以将其重命名为config.php.old
你的问题会解决的。
快乐编码:-)这种问题通常发生在将一台服务器迁移到另一台服务器、将一个文件夹迁移到另一个文件夹时。当文件夹不同时,Laravel会保留缓存和配置(文件名),然后出现此问题 解决方案运行以下命令:
php artisan config:cache
此问题的原因是本地主机中的缓存文件。根据这一点,我尝试了以下几种方法来清除项目中的缓存,但每次都失败了
- 试图通过更改web.php文件(使用artisan代码)来清除cahe命令
- 试图通过连接SSH(通过PUTTY)清除缓存
- 试图在创建新公共目录的子域中承载我的项目
我认为这个答案将有助于解决您的问题。您通常应该在生产部署例程中运行
php artisan config:cache
命令。作为问题的解决方案,我建议您重新创建缓存文件,以便更快地加载配置
要执行此操作,请在命令行上运行以下Artisan命令
- php artisan缓存:清除
php-artisan-config:cache
Route::get('/clear-cache', function() {
$exitCode = Artisan::call('cache:clear');
$exitCode = Artisan::call('config:cache');
return 'DONE'; //Return anything
});
Route::get('/clear-cache', function() {
$run = Artisan::call('config:clear');
$run = Artisan::call('cache:clear');
$run = Artisan::call('config:cache');
return 'FINISHED';
});
然后从浏览器中调用清除缓存
路由
我希望这会有所帮助。尝试使用这些对这些错误有用的命令 路径\项目\存储\框架\视图 路径\项目\存储\框架/会话
php artisan config:cache
在共享主机的情况下,当您没有命令行访问权限时,只需导航到laravel/bootstrap/cache文件夹并删除(或重命名)config.php,您就完成了 windows上的Apache+WSL 这是一个愚蠢的错误,与其他答案相比,这是一个不同的答案,但我会补充它,因为它发生在我身上 如果使用WSL(windows上的linux bash)管理laravel应用程序,同时使用windows apache运行服务器,则在WSL中运行任何缓存命令都将存储会话和其他文件夹的linux路径,而不是windows路径 解决方案 只需在powershell中而不是在WSL中运行缓存清除命令。
$php artisan优化
对我来说已经足够了。实际上,当我将项目从服务器移动到本地时,我遇到了这个问题 在 存储/框架 需要四个基本文件夹:缓存、会话、测试和视图 在我的情况下,会话丢失可能在gitignore中 所以我手动创建了会话文件夹并刷新了浏览器,它开始工作了
因此,如果我们删除这个问题,任何丢失的文件夹都可以解决。在我的情况下,这不是任何可以用php artisan命令修复的问题。问题是/storage文件夹的文件夹权限。错误并没有说明这一点 解决此问题的最佳方法是,转到目录
laravel/bootstrap/cache
并从缓存中删除所有文件
要执行此操作,请在命令行上运行以下Artisan命令1。php artisan配置:清除
2。php artisan缓存:清除
3。php artisan配置:缓存
在面板或服务器中,可以通过向路由添加以下内容来执行命令:
Route::get('/clear-cache', function() {
$exitCode = Artisan::call('cache:clear');
$exitCode = Artisan::call('config:cache');
return 'DONE'; //Return anything
});
Route::get('/clear-cache', function() {
$run = Artisan::call('config:clear');
$run = Artisan::call('cache:clear');
$run = Artisan::call('config:cache');
return 'FINISHED';
});
然后从浏览器中调用
www.yourdomain.com/clear cache
路由。如果您在docker内部运行laravel,请访问其文件系统
$ docker exec -it name-of-laravel-container /bin/bash
下一步导航
composer install --optimize-autoloader --no-dev
php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan config:cache
php artisan route:cache