Загрузка шрифта Google в HTTPS, содержимое заблокировано
Существует тема WordPress, которая автоматически вытаскивает выбранный шрифт и запрашивает его из шрифта google. когда ssl был необходим для нескольких выбранных страниц, шрифт стал missing
Просмотр журнала консоли:
[заблокировано] Страница в https://www.example.com/ 'была загружена поверх HTTPS, но выполняла небезопасное содержимое с' http://fonts.googleapis.com/css?family=Alegreya+Sans:300,400,500,700,800 ': этот контент также должен быть загружен через HTTPS.
войдет в код и сделает все запросы в https из работы с шрифтом google? Есть ли какое-то обходное решение?
нашел исходный код... но похоже, что он уже делает это... может ли быть ошибка в логике if?
$prefix = "http";
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') $prefix = "https";
if($get_google_font){
if(!in_array($rule_split[0], $this->used_fonts))
{
$this->extra_output .= "\n<!-- google webfont font replacement -->\n";
$this->extra_output .= '<link id="google_webfont_'.$this->webfont_count.'" rel="stylesheet" type="text/css" href="'.$prefix.'s://fonts.googleapis.com/css?family='.str_replace(' ','+',$rule_split[0]).$font_weight.'" />';
}
Ответы
Ответ 1
Измените тему замены всех вхождений http://fonts.googleapis.com/...
с https://fonts.googleapis.com/...
(возражаем с).
Ресурсы, которые могут представлять угрозу безопасности (такие как скрипты и шрифты), должны загружаться через защищенное соединение при запросе в контексте защищенной страницы по очевидной причине: ими можно было манипулировать в процессе работы.
Ответ 2
Использовать относительные URI протокола
Просто используйте префикс //
. (instead of http[s]://
)
- На странице https будет загружена защищенная версия.
- На простой странице http будет загружена простая версия http.
Отредактируйте свою тему, заменив каждый http://fonts.googleapis.com/...
на //fonts.googleapis.com/...
Ответ 3
пусть браузер обрабатывает все вещи, просто удаляя "http" из вашей справки.
Аналогично, вы должны делать и для других библиотек, если вы столкнулись с ними с той же проблемой
например.
https://fonts.googleapis.com/css?family=Open+Sans:700,600,800,400
к
//fonts.googleapis.com/css?family=Open+Sans:700,600,800,400
для
http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css
к
//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css
Ответ 4
Я столкнулся с этой проблемой, когда вы используете ссылки google cdn и недоступны (например, в стране, например, в Китае), попробуйте использовать локальные файлы вместо cdns