【问题标题】:Laravel storage_path for shell script用于 shell 脚本的 Laravel storage_path
【发布时间】:2016-01-16 19:11:45
【问题描述】:

我有一个需要运行 shell 脚本的 Laravel 应用程序,为此我使用了 exec()。 shell 脚本创建了一个我想存储在存储文件夹中的文件,但是 shell 脚本需要存储文件夹的路径。

如果我使用 storage_path(),它会返回类似“/home/vagrant/project/storage”的内容,当它在我的网络应用程序中引用事物时效果很好,但就 shell 脚本而言,它是不正确的. homestead 上的正确路径是:~/project/storage,而在 live/staging 上,它类似于 /var/www/project/storage。

Laravel 是否有一种优雅的方式来获取传递给 shell 脚本的确切路径,还是我必须在我的 .env 文件中指定它并改用它?

【问题讨论】:

  • 为什么“/home/vagrant/project/storage”对于 shell 脚本不正确? /home/vagrant/project/storage 和 ~/project/storage 指向同一个文件夹。

标签: php laravel laravel-5


【解决方案1】:

storage_path() 返回的默认值始终指向项目根目录中的 storage/ 文件夹。无论您将项目应用程序放在哪个文件夹中,帮助程序返回的值都是正确的。

如果您想更改 storage_path 的默认值,可以使用 App::useStoragePath($path) 进行。如果这个值对于不同的环境应该是不同的,你需要从 .env 文件中读取路径——这就是它的用途。

App::useStoragePath(env('STORAGE_PATH'));

【讨论】:

    猜你喜欢
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2019-09-12
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多