Веб-клипы 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

Фавиконс - Лучшие практики

Я пробовал несколько различных комбинаций ссылок, таких как:

  1. Предоставление нет <link> элементы и вместо того, чтобы оставить только изображение с именем apple-touch-icon.png в корневом каталоге.
  2. Предоставление элемента с относительным URL, например: <link rel="apple-touch-icon" href="example.com/apple-touch-icon.png">
  3. Предоставление элемента с абсолютным URL, например: <link rel="apple-touch-icon" href="http://example.com/apple-touch-icon.png">как с http а также https
  4. Это было выполнено за прокси-сервером 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 с сайта с недействительным сертификатом.

Другие вопросы по тегам