Правильное расположение для статического изображения, используемого в интервенции - PullRequest
0 голосов
/ 25 ноября 2018

Допустим, у меня есть Job, который генерирует изображение аватара через Intervention с именем пользователя поверх статического фонового изображения по умолчанию.Это фоновое изображение должно быть доступно для каждого участника проекта, поэтому оно должно быть где-то в репо.

Мой вопрос: где этот статический фоновый образ жизни?

Когда я смотрю на документы Laravel о структуре каталогов , я прихожу к выводу, что:

  • Он не должен существовать в каталоге public, поскольку он недолжен быть общедоступным (само изображение никогда не используется без имени пользователя)

    Каталог public содержит файл index.php, который является точкой входа для всех запросов, поступающих в ваше приложение.и настраивает автозагрузку.В этом каталоге также хранятся ваши ресурсы, такие как изображения, JavaScript и CSS.

  • Он не должен находиться в каталоге storage, так как эта папка предназначена для сгенерированных файлов(и может быть перезаписано)

    Каталог storage содержит ваши скомпилированные шаблоны Blade, сеансы на основе файлов, файловые кеши и другие файлы, сгенерированные платформой.[...]

  • Это может быть жизнь в каталоге resources, так как этот каталог содержит «необработанные, не скомпилированные ресурсы».Но тот факт, что изображения не используются в качестве примера, вызывает у меня сомнения.

    Каталог resources содержит ваши представления, а также ваши необработанные, не скомпилированные ресурсы, такие как LESS, SASS илиJavaScript.В этом каталоге также находятся все ваши языковые файлы.

Что вы думаете по этому вопросу?

1 Ответ

0 голосов
/ 25 ноября 2018

Прежде всего, ваше приложение не должно зависеть от того, находится ли файл в той же файловой системе.Вам следует использовать Laravel Storage API, поскольку таким образом вы можете легко хранить файлы в стороннем решении для хранения данных, таком как Amazon S3, без необходимости изменять что-либо, кроме параметра конфигурации.

При использовании локального драйверафайлы по умолчанию будут храниться в storage/app, что я считаю правильным местоположением.На самом деле рекомендуется, чтобы, если файл должен быть общедоступным, он должен храниться в storage/app/public/, который должен быть символической ссылкой на public/.

Как вы заметили, публичный каталог предназначен для всего, что нужнобыть публично доступным, включая скомпилированные Less / Sass, JavaScript и изображения.Каталог ресурсов предназначен для их не скомпилированных аналогов, поэтому ваши файлы Less / Sass и JavaScript должны быть там до обработки Mix.Папка хранения предназначена для более общего использования файловых хранилищ, но я хотел бы взглянуть на возможность хранения этих файлов с помощью сторонней службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...