Отключение моего фавикона: как и почему

Отключение моего фавикона: как и почему

16 мая 2022 г.

На моем сайте нет фавиконки и, скорее всего, никогда не будет.


Я не 100% уверен, почему я так решительно отношусь к этому решению, но, учитывая тот факт, что у меня нет логотипа — и я действительно не хочу его — создание фавикона кажется ненужным.


Но вы не можете просто не определить фавикон (с помощью тега <link rel="shortcut icon" />), потому что большинство веб-браузеров все равно попытаются его запросить. Это означает, что каждая загрузка страницы сопровождается вторым запросом файла favicon.ico, который всегда будет возвращаться как Не найдено.


Раздражает, да?


Итак, что нам делать?


Хотя мы могли бы просто собрать прозрачный favicon.ico и покончить с этим, я хотел устранить этот второй запрос, а не просто использовать формальное изображение, чтобы удовлетворить мою потребность в успешном ответе.


Первая попытка


Хотя отсутствие тега значка не дает желаемых результатов, я решил поэкспериментировать со значениями, которые действуют. Моей первой попыткой было использовать простой хэш:


```разметка



Хотя это устранило ответ «404 Not Found» в запросе значка, в итоге он повторно запросил всю страницу. Это имеет смысл, так как # в конечном итоге интерпретируется браузером как https://flower.codes/#, и то же самое верно для почти любого другого символа, который вы, возможно, захотите попробовать (пробелы, вопросительные знаки, и т.д).


Не правильное решение.


Введите URL-адреса данных


Итак, мы не можем опустить фавиконку и не можем использовать произвольный символ... что мы можем сделать?


Немного покопавшись, я наткнулся на концепцию, с которой большинство веб-разработчиков хорошо знакомы: [URL-адреса данных] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URI) .


Для непосвященных: URI данных позволяют встраивать файлы непосредственно в ваш HTML, а не делать внешний запрос. Чтобы быть слишком упрощенными, они обычно состоят из определения типа загружаемого файла (например, text/html или text/plain) и содержимого файла (которое может быть закодировано для уменьшения количества персонажи).


Это означает, что вместо загрузки внешнего файла вы можете включить его в строку следующим образом:


```разметка


данные: текст/html,


Однако для наших целей мы можем определить фактически пустой URL-адрес данных, просто опуская как тип содержимого, так и само содержимое:


```разметка



Хорошо, но... Почему??


Как и ожидалось, это решило мою проблему. Включив контент напрямую и оставив его пустым, мы можем исключить второй запрос, не вызывая никаких ошибок в консоли.


Но зачем проходить через все эти неприятности?


Хотите верьте, хотите нет, но мне действительно нравятся фавиконки. Я думаю, что они значительно упрощают организацию вкладок и закладок. Но в мире (широкой сети), наполненном ими, отказ от одного из них на моем собственном сайте казался небольшим способом выделиться (и сделать все возможное, чтобы сделать это «правильным» способом, — это просто вишенка на торте).


Также опубликовано на flower.codes.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE