Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здравствуйте!
На ноуте стоит windows 7 х64, xampp - php 7.2.0, apache 2.4.29 (Win32).
После смены режима в xampp с cgi на php как модуль apache в laravel перестала работать символическая ссылка на storage/app/public. При открытии www.mysite.local/storage попадаю в папку public/storage вместо storage/app/public. Делаю artisan storage:link получаю - The "public/storage" directory already exists. Подскажите, в чём может быть дело? Как исправить?
Или есть альтернативные варианты получения ссылок на файлы из storage/app/public, без символической ссылки? Или просто перенести оттуда файлы в public/storage?
Содержимое config\filesystem.php:
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
P.S.: короче говоря, как прописывать теперь ссылки на файлы без символической ссылки?..
Не в сети
В общем, кому нужно, чтобы правильно работали ссылки на storage/app/public можно использовать вот такой вариант, взятый отсюда:
Route::get('storage/{filename}', function ($filename)
{
$path = storage_path('app\public\\' . $filename);
if (!File::exists($path)) {
abort(404);
}
$file = File::get($path);
$type = File::mimeType($path);
$response = Response::make($file, 200);
$response->header("Content-Type", $type);
return $response;
});
Не в сети
только код там какой-то кривоватый. (или это на серверах такие пути должны быть??)
у меня локально, если загружаем вот так:
Storage::put('images/folder/myfilename1.jpeg', file_get_contents($request->file('file')->getRealPath()));
то по урле
http://corporate.loc/storage/myfilename1.jpeg
из приведённого примера, у меня вот так заработало:
$path = storage_path('app/images/folder/' . $filename);
Изменено sam (06.04.2018 20:01:23)
Не в сети
Хз, у меня заработало с изменением
$path = storage_path('public/' . $filename);
на
$path = storage_path('app\public\\' . $filename);
а урл такой
http://www.my.local/storage/images/1.jpg
Не в сети