ASP .Net MVC - Изображения не отображаются в опубликованной сборке
-
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, затем вы можете проверить запрос изображения, часто в таких ситуациях вы увидите красные элементы (ошибка).Это могло бы помочь локализовать проблему.