Около полутора лет назад я создал веб-сайт IIS с множеством изображений на различных страницах с вкладками aspx/asp. Мой компьютер для разработки — Windows 8.1 Pro с веб-сайтом IIS версии 8.5.9600.16384. Веб-сайт был разработан с использованием Visual Studio 2012. Веб-сайт был опубликован на том же ПК с Windows.
Затем опубликованный веб-сайт был скопирован на Window Server 2012R2 в сети IIS версии 8.5.9600.16384 и работал хорошо. Постепенно поисковые роботы нашли сайт и все стало хорошо.
На этой неделе я обновил сайт и не обнаружил ни одной рабочей картинки. Все они возвращают HTML-код 404. Когда я просматриваю файлы .jpg по отдельности из IIS, Firefox возвращает «невозможно отобразить, поскольку он содержит ошибки». Chrome и Edge говорят, что файл не найден. Если я просматриваю эти файлы из проводника Windows, они выглядят нормально.
Поэтому я удалил файлы на сервере, а затем скопировал опубликованный веб-сайт со своего ПК для разработки. До сих пор нет фотографий.
У меня есть другое подобное веб-приложение на том же сервере, поэтому я переместил один из файлов jpg в этот каталог и попытался просмотреть его через IIS - все равно 404. Я скопировал изображение с другого веб-сайта в свой «сломанный» каталог, а другое изображение было доступен для просмотра через IIS. Все эти изображения были уменьшены одинаковым образом с помощью Photoshop 7.0.
Я вернулся к своему ПК для разработки и просмотрел исходный веб-сайт через IIS. Картинки были доступны для просмотра, поэтому я переопубликовал сайт, скопировал его на сервер - картинок нет.
Затем я нашел исходную картинку (не уменьшенную) и переместил ее на сервер. Еще 404.
Моя проблема, похоже, не в разрешениях, потому что я могу просматривать изображения, скопированные из другого Интернета в этот каталог.
Сайт работал больше года, но теперь фотографии возвращают 404-е.
Изображения можно просматривать на ПК для разработки с помощью IIS, но не после их публикации и последующего копирования веб-сайта на сервер.
Другой веб-сайт с практически таким же кодом с изображениями, уменьшенными таким же образом, отображает изображения нормально.
Я действительно озадачен и хотел бы услышать некоторые из ваших идей относительно того, что может быть моей проблемой. Спасибо, что нашли время, чтобы прочитать это.
Какова структура каталогов проекта, развернутого в IIS? Вы используете http или https?
Первое, с чего я всегда начинаю работу с отсутствующими изображениями, — это просмотреть исходный код и убедиться, что путь к изображению действительно соответствует моему мнению.
Могли бы вы что-то сделать, чтобы путь теперь строился относительно файловой структуры машины, а не относительно сайта? Это может привести к тому, что изображение будет найдено локально, но не на вашем сервере.
Кому-то было бы легче понять, если бы вы включили URL-адрес, чтобы мы могли изучить отображаемую страницу.
Если я попытаюсь перейти к файлу .jpg непосредственно из IIS (без использования кода веб-кода), я все равно получу ошибку 404. VintageTrainsToysBooks.rohland.org
Я не получил письмо, в котором был комментарий, иначе я бы пересмотрел это раньше. Я щелкнул ссылку, и я вижу изображения повсюду, я так понимаю, вы нашли проблему?
Да ошибка драйвера с моей стороны. Я опубликовал решение - это была проблема с фильтрацией запросов, которую я вызвал.
Я почти уверен, что понял проблему, но это приводит к другим вопросам.
Я сократил имя файла, и теперь я могу перейти к нему через IIS.
Итак, вот мои текущие вопросы:
Почему изначально фотографии можно было просматривать, а сейчас нет? Произошли ли какие-либо изменения в Интернете относительно допустимой длины файла? Или, возможно, какое-то обновление Server 2012R2 вызвало это изменение?
Почему эти изображения доступны для просмотра на моем ПК с Windows 8.1 через IIS, но не на сервере 2012R2? Я также могу открыть веб-сайт и увидеть все изображения в Windows 8.1.
Приятно решить одну проблему, но я все же хотел бы знать причину, если у кого-то есть какие-либо предложения.
Я НАКОНЕЦ-ТО понял, почему мои фотографии исчезли. Да, переименование моих файлов .jpg решило проблему, но это не было причиной. Проблема заключалась в том, что я добавил /2018,/2019 и/2020 к отказу в фильтрации запросов IIS. На всех моих графических файлах были даты. Когда я переименовал/сократил имена файлов, я удалил /year. Фу! Какие глупости я делаю! Это также объясняет, почему я мог просматривать эти веб-страницы на своем компьютере для разработки, но не на сервере - без фильтрации запросов. Надеюсь, моя ошибка кому-то поможет.
Вы пробовали нажимать Ctrl-F5 в браузере при просмотре страницы?