Файл оптимизатора изображений laravel не существует

Я использую пакет spatie/laravel-image-optimizer для оптимизации своих изображений. Я получаю сообщение об ошибке: storage/app/public/files/car/9/km_declaration/2022/uE5DMCYh6hCuQXrOZ4yOSLCtLEnNdsE9e9OriNVw.jpg does not exist

Хотя файл есть, и он может получить к нему доступ локально, в производстве он не может его найти.

Я использую оптимизатор, как предполагалось, и я использую общедоступную файловую систему:

ImageOptimizer::optimize($this->url);

У вас есть предположения, почему он работает локально с усадьбой, но не на производстве?

(Права доступа к папке 755 на продукте)

Обновлять: Код: ImageOptimizer::optimize($this->url); запускается из задания cron. Если я делаю file_exists($url) из контроллера, я получаю true, но false из задания. Я думаю, что это источник моей проблемы.

если файл не существует, чем мы можем вам помочь? Вы можете подтвердить отсутствие файла, инкапсулировав эту строку с помощью if (file_exists($this->url)) {. Что касается разрешения на папку, кто является владельцем папки, чтобы вы использовали 755 вместо 775.

N69S 11.05.2022 11:28

дело в том, что файл существует в этом месте, просто код не может его найти

Mátyás Grőger 11.05.2022 11:46

Можете ли вы добавить к вашему вопросу дамп значения $this->url в локальной и в производственной среде?

N69S 11.05.2022 12:45

@ N69S То же самое. Теперь я мог бы исследовать, что file_exists($url) возвращает true на контроллере, но false из задания cron, используя тот же URL-адрес. У вас есть идеи для этого?

Mátyás Grőger 11.05.2022 14:00

было бы быстрее показать в качестве примера значение. поскольку ошибка возникает из-за разницы в среде, я предлагаю вам либо выполнить "cd path/of/project" в качестве первой инструкции cron перед "schedule:run", либо использовать в своем коде вспомогательную функцию "base_path()". " вот так ImageOptimizer::optimize(base_path($this->url));

N69S 11.05.2022 15:21
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В папке хранилища нужно выставить права 775 chmod -R 775 хранилище

Я изменил разрешение, но все та же ошибка :(

Mátyás Grőger 11.05.2022 11:53

На самом деле мне нужно было сделать две вещи: сначала изменить разрешение, как предлагается в этом ответе, а также мне нужно было добавить public_path, когда я вызывал оптимизатор: «ImageOptimizer::optimize(public_path().$this->url);’

Mátyás Grőger 11.05.2022 16:55

Другие вопросы по теме