如何从Laravel 5.2中的存储路径中删除公共目录

时间:2016-06-03 00:01:44

标签: laravel laravel-5 laravel-5.1 laravel-5.2

我正在使用以下代码

dd(URL(env("UserFolder") . \Auth::user()->UserID . "/" . \Auth::user()->UniqueFileName));

给出了以下结果。

http://localhost/SportsApp/public/storage/User17/9.png

有没有办法从此网址中删除公共目录:http://localhost/SportsApp/public/storage/User17/9.png

我的意思是,是否有任何内置方法可以为我提供存储目录的Url?

3 个答案:

答案 0 :(得分:0)

您需要使用正确的Web服务器VH配置。 Set public directory as root for Laravel project VH

重启服务器并使用http://localhost/img/User17/9.png?

等网址

答案 1 :(得分:0)

默认情况下,出于安全原因,用户无法访问您的storage文件夹,他们只能访问public。因此,如果您希望从storage返回一些文件,则应该manually

Route::get('get-file', function() {
    return response()->file(storage_path().'path_to_your_file');
});

或者您可以将用户的文件移动到公共目录,并使用asset

获取其上的链接
asset(env("UserFolder") . \Auth::user()->UserID . "/" . \Auth::user()->UniqueFileName));

答案 2 :(得分:0)

您的网络服务器DocumentRoot应指向/ path / to / you / laravel / project / public

你可以做这样的事情

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

将这些结合起来就可以得到完整的路径,例如: “/var/www/project/public/img/avatar/generic.svg”