ASP .Net MVC - Изображения не отображаются в опубликованной сборке

StackOverflow https://stackoverflow.com/questions/929809

  •  06-09-2019
  •  | 
  •  

Вопрос

Я разрабатываю ASP .Сетевое приложение MVC, и на моем компьютере разработчика приложение работает должным образом, и, что более важно, изображения, упомянутые в файле CSS, также отображаются правильно.

Однако, когда я публикую это приложение на тестовом сервере, веб-приложение работает нормально, но изображения не отображаются.

Если я изменяю URL-адрес в IE при тестировании выходных данных с тестового сервера, возвращается изображение, что означает, что файл есть, но он просто не будет отображаться на странице просмотра при обычном использовании сайта.

Я тоже пробовал альтернативные серверы, но результат тот же.

Для подтверждения приведем строку со страницы CSS, ссылающуюся на изображение...

background-image: url('/Content/Images/Logo/myLogo.jpg');

Есть какие-нибудь предложения?

Ваше здоровье

Бретт

Это было полезно?

Решение

URL-адреса указаны неверно, вероятно, из-за того, что вы публикуете во вложенной папке, и поэтому они больше не находятся в корневом каталоге сервера.Обычно я использую Url.Content( "~/Content/Images/..." ) создать URL-адрес вместо его жесткого кодирования.Таким образом, он будет учитывать маршруты при построении пути.

Пример:

 <img src='<%= Url.Content( "~/Content/Images/banner.jpg" ) %>' alt="Banner" />

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

У меня была такая же проблема, но я нашел причину, по которой он принудительно проверял аутентификацию в папке Содержимого.

Когда пользователь еще не вошел в систему, они классифицируются как анонимная аутентификация.В IIS7 (это то, что я использую, предполагая, что это то же самое в IIS6) вам нужно открыть окно аутентификации в представлении функций.Затем отредактируйте анонимную аутентификацию, чтобы использовать свой идентификатор пула приложений или идентификатор по умолчанию, просто убедитесь, что у пользователя есть разрешения на чтение в этой папке.

Это исправило ситуацию для меня, надеюсь, у вас это сработает.

Возможные относительные пути неверны...Возможно, они неверны для самого CSS-файла.Вы можете использовать FireBug, чтобы проверить, правильно ли загружен CSS, затем вы можете проверить запрос изображения, часто в таких ситуациях вы увидите красные элементы (ошибка).Это могло бы помочь локализовать проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top