Laravel 5 - 写入供应商目录

wiz*_*koz 9 laravel-5

Laravel 5工作了一段时间后坠毁了.这是错误:

file_put_contents(/Library/WebServer/Documents/project/vendor/services.json):无法打开流:权限被拒绝

在Filesystem.php第74行

我想知道它为什么要写入供应商目录?

val*_*lex 18

试试这个artisan命令

php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)


nic*_*oqh 9

(见下面的更新!)

一些用于缓存的存储文件移动到Laravel v5.0.15的不同位置.

受影响的文件:

  • services.json
  • compiled.php
  • routes.php文件

引用其中一个开发者:

它在供应商中更有意义.这使得文件更加明确地与已安装的依赖项非常相关.

有关更改的更多信息和讨论,请参阅此提交.

更新:维护者在讨论后改变了这种行为.

从v 5.1开始,将写入所有三个文件bootstrap/cache.如果您使用的是5.0.*,请继续阅读:

除非实际可写,否则不会写入供应商目录.

此外,该方法useStoragePathForOptimizations(bool)已添加到Illuminate\Foundation\App中,可以从bootstrap/app.php调用.这将设置属性$useStoragePathForOptimizations并确定是否应将存储目录用于优化.

有关详细信息,请参阅以下两个提交: