【问题标题】:how to change storage path in Laravel5.1 on different environment?如何在不同环境下更改 Laravel 5.1 中的存储路径?
【发布时间】:2016-12-30 14:35:22
【问题描述】:

我在 prod 环境的 .env 文件中设置了一个配置。

STORAGE_PATH=/dev/shm/runtime

并在 bootstrap/app.php 中编写以下代码。

if (env('STORAGE_PATH')) {
    $app->useStoragePath(env('STORAGE_PATH'));
}

它不起作用,因为env('STORAGE_PATH') 返回空字符串。 .env 文件似乎没有加载。

有人建议在 app/Providers/AppServiceProvider.php 中这样做

public function register()
{
    if (env('STORAGE_PATH')) {
        $this->app->useStoragePath(env('STORAGE_PATH'));
        /* or 
         $this->app->bind('path.storage', function () {
                return env('STORAGE_PATH');
        });
        */
    }
}

试过了,没用。

我相信必须有一种优雅的方式来完成这项工作。

【问题讨论】:

  • 如果你把字符串放进去useStoragePath() 工作吗? dd(env('STORAGE_PATH'));放到register方法中返回什么?
  • @Alexey Mezenin 它与 bootstrap/app.php 中的搅拌一起使用,问题是 .env 文件尚未加载,那么我应该在哪里写入配置值?
  • 您是否尝试过register() 方法中的字符串? dd() 返回什么?如果没有这些信息,任何人都无法为您提供帮助。
  • 在 register() 方法中,dd(env('STORAGE_PATH')) 返回期望值。它只是更改 Application::$storagePath 的值,但对真实路径没有影响。就像我对@Kelvin Kyaw 说的那样。

标签: php laravel


【解决方案1】:

bootstrap/app.php 中删除代码。

查看我的附件图片。它适用于 5.1。

我只是在视图文件中打印出dd

 <div class="title">Laravel 5 {{dd($app->storagePath())}}</div>

【讨论】:

  • 感谢检查。这种方式确实改变了 Application::$storagePath 的值,但它并没有改变真正的路径。检查折叠存储/famework/views/,新创建的视图缓存文件仍在其中。
猜你喜欢
  • 2014-03-05
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 2015-11-18
  • 1970-01-01
  • 2011-02-02
  • 2022-10-02
相关资源
最近更新 更多