Почему изображения и CSS не отображаются под HTTPS? - PullRequest
22 голосов
/ 27 октября 2011

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

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

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

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

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

Спасибо.

Ответы [ 4 ]

11 голосов
/ 27 октября 2011

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

2 голосов
/ 01 мая 2015

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

2 голосов
/ 27 октября 2011

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

1 голос
/ 05 сентября 2012

У меня была такая же проблема. Если страница открывается в https, тогда css / js также следует загружать в https. Я имею в виду, что для загрузки css / js он должен использовать тот же протокол, который использовался для открытия страницы html / jsp / jsf и т. Д. Таким образом, решение состоит в том, чтобы не использовать абсолютный 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" />

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...