Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Кеширование картинок Nginx & Laravel

#php #laravel #nginx #кэширование


Для кеширования картинок (nginx) у меня на сейте прописано правило:

location ~* \.(gif|ico|jpe?g|png)$ {
             expires     1w;
    }


Сами картинки хранятся в ларавеле в папке site/storage/app/dir
и есть картинки из /site/public/img по итогу фалы из /site/public/img после кеширования
доступны а из site/storage/app/dir нет - отдают 404.

Примечание в структуре site/storage/app/dir вместо dir могут другие папки например
slider category shop 
    


Ответы

Ответ 1



Вы уверены что картинки из папки storage вообще должны быть доступны? По-умолчанию все доступные клиентам ресурсы хранятся в папке public и ресурсы для фронта отдаются по параметру public_path()/ссылка на файл. У меня к примеру в папке storage находятся "исходники" файлов, а в папке public уже обработанные, сжатые и подготовленные для клиентов

Ответ 2



Лучше всего заведите папку public_path()/upload с правами на запись для пользователя www-data. storage_path() используется для того, что не должно быть доступно публично. То что выделаете сложно назвать кешированием т.к. никак не увеличивает скорость доступа. Это бесполезное дублирование файлов на диске. Часть конфига nginx который вы прислали вполне подойдет Вам на начальном этапе.

Ответ 3



В итоге пришлось сохранять все в public так как при другом подходе терял в скорости.

Комментариев нет:

Отправить комментарий