Подтвердить что ты не робот

Почему изображения и CSS не отображаются под HTTPS?

Я только что добавил SSL на свой сайт. Когда я перехожу к https://mydomain.com, я вижу текст, но нет CSS или изображений. Он находится на выделенном сервере, и у меня есть полный контроль над кодом.

В настоящее время все пути являются относительными. Я могу просматривать изображения и css, когда я перехожу к этим файлам напрямую, используя HTTP или HTTPS. Но когда я загружаю страницу, они не загружаются...

Когда я использую Firebug и смотрю в NET, я вижу для каждого изображения 302 Найдено. Что это значит?

Какие изменения мне нужно сделать, чтобы убедиться, что http и https отображают сайт одинаково?

Я делаю все пути абсолютными? Есть ли способ сделать одно изменение повлиять на всех или я действительно должен пойти и изменить каждый из них?

Спасибо.

4b9b3361

Ответ 1

Есть ли у вас защита hotlink? Если вы попытаетесь отключить его. И посмотрите, помогает ли это.

Ответ 2

Вам не нужно делать все абсолютно, но вам нужно убедиться, что ваши CSS и изображения доступны через SSL. Попробуйте получить доступ к ним напрямую или используйте Firebug или аналогичный инструмент браузера, чтобы выяснить, откуда он пытается их загрузить. Подумайте об использовании "URL-адресов, относящихся к протоколу", чтобы к ним всегда обращались CSS, изображения и т.д., Используя тот же протокол (http или https) в качестве самой страницы. http://paulirish.com/2010/the-protocol-relative-url/

Ответ 3

Если вы укажете свой CSS с абсолютной ссылкой (например, http://www.yourcompany.net/yourcompany.css), он не покажет CSS в https. Если вы сделаете абсолютный https://www.yourcompany.net/yourcompany.css, он будет работать в обоих вызовах.

Ответ 4

У меня была такая же проблема. Если страница открыта в https, то css/js также следует загрузить в https. Под этим я подразумеваю, что для загрузки css/js он должен использовать тот же протокол, что и для открытия страницы html/jsp/jsf etc. Таким образом, решение состоит в том, чтобы не использовать абсолютный url для css/js. Вместо этого используйте относительный URL-адрес:

<link type="text/css" rel="stylesheet" href="../css/style.css" />

ИЛИ используйте это:

<% String contextPath=request.getScheme()+"://"+request.getServerName()"+":"+request.getServerPort()+request.getContextPath();

<link type="text/css" rel="stylesheet" href="<%=contextPath>/css/style.css" />

Это должно решить проблему загрузки изображения.