#asp.net #https #look-and-feel
#asp.net #https #внешний вид
Вопрос:
У нас есть веб-сайт в домене, давайте назовем: http://website.com. Необходимо реализовать такой же внешний вид на другом веб-сайте (https://custom.website.com). Как мы можем видеть, 2-й находится в поддомене 1-го, но он защищен (использует https).
Для достижения одинакового внешнего вида на обоих веб-сайтах используются одинаковые библиотеки DLL. Эти библиотеки DLL содержат функциональные возможности для меню, JavaScripts и т.д.). Но второй веб-сайт использует изображения и некоторые CSS-файлы с первого. Например, для отображения «Logo.png» вместо обычного «~/Images/Logo.png» следующий путь к файлу отображается в формате HTML: «http://website.com/Images/Logo.png«
Все было сделано в локальной среде и работает идеально (http://localhost / упомянутый http://website.com).
Но, когда веб-сайт был развернут в «реальной» среде (разработки), мы получили сюрприз: IE уведомляет:
веб-страница содержит контент, который не будет доставлен с использованием защищенного HTTPS-соединения
Я вижу вариант решения проблемы: мы могли бы включить изображения на защищенный веб-сайт и использовать их локально, но в этом случае нам нужно будет выполнить повторное использование, если что-то изменилось на главном веб-сайте.
Вопрос: есть ли какой-либо обходной путь, как с защищенного веб-сайта мы могли бы использовать изображения, которые расположены на незащищенном.
Спасибо. Любые мысли приветствуются.
P.S. Я использую ASP.NET 3.5, веб-сайты размещаются под управлением Windows 2008
Ответ №1:
Вам также необходимо разместить свои изображения, CSS и скрипты (в более общем плане, все, что загружается с веб-страницы) на вашем HTTPS-сайте, чтобы избежать смешанного контента.
Ответ №2:
В зависимости от уровня безопасности и изоляции вы могли бы настроить общий виртуальный каталог для двух веб-сайтов, которые указывают на одно и то же физическое местоположение.
Например, создайте каталог по адресу C:inetpubshared-static
и создайте виртуальный каталог /static
под каждым веб-сайтом, на который указывает C:inetpubshared-static
. Оттуда оба веб-сайта могут ссылаться на изображение, подобное ~/static/logo.png
, если это необходимо для совместного использования контента. Когда в каталог помещается новый файл (или замененный файл), оба веб-сайта будут ссылаться на один и тот же файл.
Ответ №3:
Если вы можете включить поддержку https на главном веб-сайте, вы могли бы использовать https для URL-адресов изображений вместо http.
Альтернативой, как предлагали другие, является синхронизация изображений / или использование общего местоположения при их предоставлении.
Комментарии:
1. Основной веб-сайт не должен быть защищен.
Ответ №4:
Я вижу обходной путь:
на втором веб-сайте реализована функциональность, которая будет проверять (один раз в день или в час), являются ли собственные изображения последними, и обновлять их при необходимости…
Это требует некоторой работы, но с таким решением веб-сайт будет проще поддерживать.
Если вы видите лучший вариант, пожалуйста, дайте мне знать.
Спасибо.
Комментарии:
1. Честно говоря, я не очень хорошо знаком с IIS. Настройка Apache Httpd для обслуживания одного и того же статического содержимого из одного каталога на диске на двух разных виртуальных хостах (один для HTTP и один для HTTPS), безусловно, возможна. Я бы предположил, что один и тот же каталог может быть присоединен к двум разным местам аналогичным образом в IIS. Возможно, может помочь помещение этого содержимого в выделенный каталог, который вы бы обслуживали по общему пути (например, «/ static»).