Переместил storage папку в public, безопасно ли это?

197
21 февраля 2019, 08:50

Веб Сервер не позволяет создать ссылку на storage папку, решил вопрос просто переместив папку storage в public, все работает,

Но правильно ли я поступил, безопасно ли это для сайта ? Если не безопасно, то как поступить правильно ?

Если есть ссылки на эту тему буду рад посмотреть.

Answer 1

А вы пробовали создавать символическую ссылку на локальном проекте, а не через хостинг (по ssh или как вы там делали) и потом деплоить на хостинг?

Также можете попробовать следующие команды для создания символической ссылки:

Unix:

ln -s /path/to/laravel/storage/avatars /path/to/laravel/public/avatars

Windows:

mklink /j /path/to/laravel/public/avatars /path/to/laravel/storage/avatars 

В папке storage есть же папки framework, logs, их надеюсь не перемещали? :) Если говорить о папке storage_path('app') то она содержит папки разных ваших локальных хранилищ. Если посмотреть в конфиг filesystems.php, то видно какие у вас хранилища (disks), по умолчанию есть следующие локальные хранилища:

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],
    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

local не является публичным и содержит то что в корне storage/app. Поэтому переносить весь storage/app не правильно. Переместить storage/app/public в public еще имеет смысл. Но после такого перемещения вы не сможете использовать public disk по такому принципу:

Storage::disk('local')->put('file.txt', 'Contents');

Точнее сможете, но это надо менять в конфиге 'root' => storage_path('app/public'), на что-то подобное: public_path('storage'), не знаю хорошая ли это практика.

Надеюсь помог чем-то.

Answer 2

Я посмотрел на курсах как делают специалисты от https://www.udemy.com/

Для отображения рисунков создаю путь: public_images:

в storage/app/public/public_images

запускаем команду:

php artisan storage:link

и директория [/storage/product_images] появится ссылкой в нашем сайте/public/public_images

•   !!!А изображения которые в БД размещаем в папку storage/public/public_images

а с вида подтягиваю картинку как обычно:

<td>
<img src="{{ Storage::url('product_images/'.$product['image'])}}" width="100" height="100" style="max-height: 220px">
</td>

или так:

<td>
    <img src="{{asset('storage')}}/product_images/{{$product['image']}}" width="100" height="100" >
</td>
READ ALSO
Как хранить плотную матрицы с целью параллельного умножения?

Как хранить плотную матрицы с целью параллельного умножения?

Какой наилучший способ для хранения плотной матрицы с целью параллельного умножения матрицы на матрицу?

158
QAbstractGraphicsShapeItem change color

QAbstractGraphicsShapeItem change color

Я создаю приложение с графами на Qt и должен реализовать алгоритм раскраски графаСсылка на проект:https://github

133
Странные COM DLL

Странные COM DLL

Появилась задача прицепить к программе на с++/qt драйверы торгового оборудования для 1с83

147
Custom deleter. Smart pointer std::unique_ptr();

Custom deleter. Smart pointer std::unique_ptr();

Не очень могу понять, что происходит в этом кодеНужно создать свой deleter, для умного указателя

140