После подключения CDN часть фотографий перестала показываться. При этом файл в медиабиблиотеке есть, а старый адрес открывается. Искать причину нужно по запросу, который сделал браузер на проблемной странице: именно этот URL, его ответ и правила преобразования определяют результат.
Ниже разобран учебный перенос изображений с example.ru/uploads/ на media.example.ru/. Разделяйте исходный файл, адрес доставки и преобразованную версию. Исправление одного из них не подтверждает, что карточка товара получила правильное изображение во всех размерах.
Найдите адрес, который выбрал браузер
Откройте страницу и проблемное изображение в инспекторе. Сохраните src, srcset и фактически выбранный источник. При адаптивной загрузке браузер может запросить вариант из srcset, поэтому успешное открытие только src не доказывает исправность картинки, которую видит посетитель.
Во вкладке сети найдите соответствующий запрос и запишите полный адрес, включая параметры. Нужны размер, формат, подпись и прочие значения преобразования. Не заменяйте URL вручную на более простой до сохранения исходного факта: ошибка может находиться как раз в утраченной части адреса.
Проверьте место использования. Главное фото карточки, миниатюра и фоновый баннер могут строиться разными генераторами. Если сломались только миниатюры, настройка общего домена не объясняет всё: сравните правила этой конкретной ветки, а не объявляйте недоступной всю систему доставки файлов.
Прочитайте фактический ответ картинки
Запишите статус HTTP, заголовок Content-Type и содержимое ответа. Ошибка 404 указывает на отсутствие ресурса по данному пути; 403 требует разбора ограничения доступа; ответ 200 может содержать HTML-страницу входа или сообщение CDN вместо изображения. Расширение .jpg в URL само по себе не устанавливает тип ответа.
Если используется перенаправление, пройдите цепочку до конца. Изображение может попасть на страницу сайта, старый домен или недоступное хранилище. В задаче укажите исходный URL и конечный результат отдельно: разработчику важно знать, на каком переходе изменилось назначение.
Сравните тело ответа с ожидаемым файлом. Откройте изображение напрямую и убедитесь, что оно действительно декодируется и показывает нужный предмет. Маленький логотип-заглушка с успешным статусом не является восстановленным фото товара. Приёмка должна включать содержание, а не только отсутствие сетевой ошибки.
Проверьте путь между CDN и исходным хранилищем
Сопоставьте новый адрес с действительным местоположением оригинала. Префикс /uploads/ мог быть добавлен дважды или удалён при смене настройки. Разный регистр имени файла и неожиданное кодирование пробелов также могут давать выборочные ошибки: одни товары работают, другие нет.
Учебная таблица помогает сузить место сбоя:
| Наблюдение | Следующая проверка |
|---|---|
| Оригинал доступен, CDN возвращает 404 | Правило построения пути и адрес источника |
| Оригинал и CDN недоступны | Существование файла и права исходного хранилища |
| Полный размер работает, миниатюра нет | Параметры преобразования и допустимые размеры |
| CDN возвращает страницу входа | Доступ к источнику и настройки закрытого хранилища |
Не публикуйте закрытые токены или ссылки служебного доступа в отчёте. Для диагностики сохраните их в согласованном защищённом канале либо замените чувствительные значения, оставив понятную структуру запроса. Источник изображения не должен становиться публичным административным интерфейсом ради удобства проверки.
Разберите HTTPS и ограничения доступа
Проверьте схему ссылки, сертификат домена доставки и сообщения браузерной консоли. После переноса HTML может оставаться на HTTPS, а старый генератор изображений — подставлять HTTP. Фактическое поведение зависит от типа ресурса и обработки браузером; исправлять нужно источник адреса, а не разрешать небезопасную загрузку в настройках посетителя.
При ответе 403 выясните условия доступа: подпись URL, срок действия, защита от стороннего использования или разрешённый источник запроса. Ссылка, скопированная из авторизованной панели, может работать у редактора и перестать работать у обычного посетителя. Проверьте публичный сценарий отдельно.
Не отключайте все ограничения CDN ради одного файла. Сначала определите необходимую политику: какие изображения публичны, какие закрыты и каким способом приложение получает допустимый адрес. Изменение должно сохранить эту границу и исправить конкретный путь доставки.
Отличите ошибочный кеш от неправильного генератора
Сравните ответ CDN и исходного хранилища, указав время. CDN может некоторое время сохранять прежнюю ошибку, но это лишь гипотеза до проверки его состояния. Отметьте доступные признаки кеширования и результат согласованной очистки по конкретному адресу.
Если после очистки браузер снова получает тот же ошибочный URL, проблема может быть в генераторе карточки, а не в сохранённом ответе файла. И наоборот: HTML уже правильный, но старое изображение возвращает отдельный слой доставки. Разделяйте кеш страницы и кеш ресурса как два объекта проверки.
После исправления выполните новое открытие без сохранённых локальных ответов. Не используйте только перезагрузку редакторского окна: наличие картинки в памяти браузера скрывает дефект. Зафиксируйте, что запрос действительно выполнен и вернул ожидаемый файл через новый маршрут.
Проверьте варианты размеров и поисковый доступ
Откройте контрольную карточку на узком и широком экране. Сохраните выбранные адреса и убедитесь, что оба работают. Дополнительно проверьте фото с необычным именем, недавно загруженный файл и старую запись. Эти случаи выявляют различия обработки, которые не видны на одном заранее подготовленном товаре.
Проверьте правила обхода домена доставки, если изображения должны быть доступны поисковым роботам. Google описывает особенности CDN и обнаружения файлов в руководстве по изображениям. Доступность HTML-карточки и доступность фото — разные наблюдения; одна не подтверждает другую.
Для общей работы с размером и форматом используйте инструкцию по оптимизации изображений. Если одновременно менялся механизм отложенной загрузки, сверяйте его с руководством по lazy loading: ошибка времени загрузки отличается от ошибки адреса или доступа.
Закройте перенос по пользовательскому результату
В задаче разработчику сохраните пример страницы, фактически выбранный URL, статус, тип ответа и ожидаемый файл. Укажите, какое правило было изменено и какие соседние сценарии проверены. Это поможет повторить диагностику, если следующая загрузка каталога снова создаст адреса по старой схеме.
Для приёмки картинка должна показывать нужный товар без предупреждений, работать для обычного посетителя и переключаться вместе с вариантом. Проверьте также ссылку увеличенного просмотра. Успешная миниатюра не доказывает, что крупное изображение галереи доступно по своему отдельному адресу.
Повторный технический аудит страницы можно использовать как дополнительное наблюдение опубликованного состояния. Сохраните контрольную выборку для будущих изменений CDN. Перенос завершён, когда исправлен источник URL и фактическая доставка подтверждена, а не когда несколько фото случайно появились в уже открытом браузере.