Веб-клипы Apple (значки Apple Touch) не работают для сайтов с HTTPS
У меня возникают проблемы с отображением значка Apple Touch для функции "Добавить закладку" в Safari, когда для сайта включена поддержка HTTPS. Я могу заставить его работать с опцией "Добавить в дом", поэтому я не уверен, что для "Добавить закладку" делается другой вызов.
Я следовал документации Apple, которая не содержит много информации. Я также нашел следующие ссылки несколько полезными:
http://www.jonathantneal.com/blog/understand-the-favicon/
https://github.com/audreyr/favicon-cheat-sheet
https://mathiasbynens.be/notes/touch-icons
Я пробовал несколько различных комбинаций ссылок, таких как:
- Предоставление нет
<link>
элементы и вместо того, чтобы оставить только изображение с именемapple-touch-icon.png
в корневом каталоге. - Предоставление элемента с относительным URL, например:
<link rel="apple-touch-icon" href="example.com/apple-touch-icon.png">
- Предоставление элемента с абсолютным URL, например:
<link rel="apple-touch-icon" href="http://example.com/apple-touch-icon.png">
как сhttp
а такжеhttps
- Это было выполнено за прокси-сервером nginx для предоставления ssl, я пробовал это с помощью nginx, извлекающего изображения как статические ресурсы из отдельного места, или просто позволяющим веб-приложению обрабатывать запрос изображения.
Я не уверен, в чем проблема - эти опции работают для "Добавить в дом", но не работают для "Добавить закладку", есть идеи?
Примечание. Хотя сайт, на котором я действительно хочу, чтобы это работало, имеет HTTPS за аутентификацией, даже когда я запускаю его на тестовом сайте без аутентификации, он все еще имеет проблему.
Обновление 1
У меня включены журналы доступа nginx, и я вижу что-то странное. Я загружаю сайт, а затем нажимаю на маленькое окошко со стрелкой вверх и наружу. Как только я это сделаю, я вижу следующий журнал доступа:
"GET /apple-touch-icon-152x152-precomposed.png HTTP/1.1" 200 17758 0.000 "-" "MobileSafari/600.1.4 CFNetwork/711.1.12 Darwin/14.0.0"
Итак, он нашел одну из множества установленных мной яблочно-сенсорных иконок и появляется при нажатии "Добавить на главный экран", отлично. Затем, когда я нажимаю кнопку "Добавить закладку", я вижу следующий журнал доступа:
"GET /news/ HTTP/1.1" 302 0 0.001 "-" "Mozilla/5.0 (iPad; CPU OS 8_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B410"
Это редирект 302 из-за аутентификации. Этот вызов выполняется для определения основного цвета страницы, чтобы значок компаса по умолчанию мог иметь цвет фона, соответствующий странице. Странная вещь: почему это даже вызывается, разве он не должен пытаться сначала вызвать значок сенсорного яблока?
Кроме того, пользовательские агенты отличаются, хотя оба запроса приходят с одного и того же iPad - очень странно.
1 ответ
Моя проблема заключалась в том, что в моей локальной среде разработки я использовал недействительный самозаверяющий сертификат. Safari не загружал значок Apple Touch с сайта с недействительным сертификатом.