browserconfig.xml — Новый web-стандарт от MS

Как и многие IT-шные люди, иногда поглядывающие в логи своих web-серверов, заметил недавно помимо привычных запросов robots.txt и favicon.ico попытку получить файл browserconfig.xml, которого у меня, естественно, не было (в итоге сплошные 404-ки). Прошел тем же путем, что и многие :

Погуглил, выяснил, что это Microsoft ввел новый стандарт для файлов «корневой папки» (DocumentRoot) сайта — конфиг для плиток в Windows 8 и выше : файл в минимальном варианте должен хранить пути к картинкам, которые вылезут в качестве «плиток» на рабочий стол вашего Windows-8/10 компьютера, если вы захотите разместить там ссылку на данный сайт. (Посмотреть можно на сайте MSDN)
Сделал такой файл и комплект картинок для него, положил их в папку img/ (в корневой папке сайта, конечно). И успокоился. Да, а пути к картинкам были прописаны так, как в образцах от самой MS сделано (без слеша в начале URL строки):
<square70x70logo src="img/logo_128x128.png"/>
<square150x150logo src="img/logo_270x270.png"/>
<!-- и так далее -->

И что же вы думаете ? Через пару дней глянул в лог, а там сплошные 404-ые коды на попытку получить файлы из ПОД-директории:
... "GET /somefolder/img/logo_270x270.png HTTP/1.1" 404 1045 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko"

«Что за нафиг ?» — подумал я. Почему браузер дергает не из корневой img/, а из вложенной папки ?
Единственный резон — видимо, пользователь кладет на рабочий стол ссылку с подкаталогом: «www.site.com/somefolder/».

Но погодите, разве не должны по правилам хорошего тона все относительные пути к ресурсам формироваться от того места, где лежит собственно
browserconfig.xml (т.е. от корневой папки сайта) ? Так, например, ищутся файлы картинок относительно папки, в которой лежит css-файл, про них упоминающий, и неважно, с какого URL этот файл используется.

Или мне в каждой своей папке делать копию img/ со всеми картинками плиток ??? Нет, конечно, я как и вы догадался, что надо добавить слеш в начало URL всех картинок:
<square70x70logo src="/img/logo_128x128.png"/>
...

На следующий день проверка лога подтвердила — картинки начали отдаваться с правильного адреса. Но все равно встречаются и обращения к старым адресам — очевидно, это у тех, кто раньше загрузил неисправленную версию browserconfig.xml, закешировались неверные адреса ресурсов и теперь они используются для формирования плиток на столе .
Произойдет ли когда-нибудь их «рефреш», или надо принудительно снести со стола ссылку и добавить ее заново — «это науке не неизвестно».

Резюме: граждане веб-мастера, будете делать свой browserconfig.xml — сразу ставьте слеш в начало адресов картинок !

Добавить комментарий