У меня есть веб-страница, использующая Twitter Bootstrap. Он отлично работает в Chrome, Firefox и Safari. Тем не менее, когда я пытаюсь просмотреть его в Edge в Windows 10, я получаю кучу 403 ошибок, заявляя, что не удалось загрузить множество бездействующих файлов из CDN Bootstrap. Почему запрашиваются бездействующие файлы, если браузер не может с ними что-либо сделать? Я вообще не использую LESS, просто CSS3, который отлично воспроизводится. Как сделать эту остановку?
Почему Bootstrap пытается загрузить файлы LESS в Edge?
Ответ 1
Хорошая новость заключается в том, что это не повлияет на обычных пользователей сайта. Плохая новость заключается в том, что это также происходит в Chrome в некоторой степени, просто, что вкладка сети в Chrome не сообщает о ошибках 403.
В файле CSS, на который вы ссылаетесь, есть строка внизу файла:
/*# sourceMappingURL=bootstrap.min.css.map */
Это исходные карты и ссылки на все исходные файлы, используемые для создания мини-CSS, который находится в вашем браузере.
В экземпляре bootstrap CDN указывает на файлы, которые не существуют, такие как http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/less/scaffolding.less
Файл исходной карты будет загружен, только если вы включили карты источников и откроете свои инструменты для разработчиков. Edge по умолчанию использует исходные карты, и насколько я могу судить, нет способа отключить их (но помните, что это произойдет только тогда, когда инструменты dev открыты, я подтвердил это поведение с помощью Fiddler), поэтому, когда вы нажимаете f12, тогда собираемся попробовать и получить исходные сопоставленные файлы. Chrome работает несколько иначе, он загрузит исходную карту, но затем не попытается загрузить файл .less, пока вы не перейдете к исходному файлу.
Если один из файлов .less возвращает 403 Запрещенный ответ, Edge сообщает об этом на вкладке сети. Chrome dosen't.
Если вы используете HTTP-отладчик, такой как Fiddler, вы увидите, что Chrome действительно запрашивает файлы, а также получает ответ 403, однако он не сообщает об этом на вкладке сети. При использовании Fiddler для преодоления проблемы с https я изменил файл CSS, указав на URL без https. например: http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
Исправление этой проблемы - исправить файлы, которые находятся на исходной карте. Я поднял вопрос о загрузке bootstrap maxcdn GitHub: https://github.com/MaxCDN/bootstrap-cdn/issues/629
Ответ 2
Известна проблема с MaxCDN. (и CDNjs)
Записанные проблемы для справки:
-
https://github.com/MaxCDN/bootstrap-cdn/issues/671 - Эта проблема закрыта как дубликат
-
https://github.com/MaxCDN/bootstrap-cdn/issues/629 - известная ошибка
-
https://github.com/twbs/bootstrap/issues/19063 - открытая проблема с загрузкой Twitter
Анализ CDN:
Для sourceMappingURL
, который bootstrap.min.css.map
для загрузочный файл, любой из файлов расширения .less
(например, этот файл) не загружается с HTTP-статусом 403
(запрещено).
Chrome подавляет эту проблему в консоли разработчика, однако Edge не работает. Проблема при доступе к файлам .less воспроизводится путем доступа к этой ссылке.
Эта проблема связана не только с MaxCDN, но также с CDNjs. Ссылки для CDNjs this, this и this
Ответ 3
Это все еще проблема в 3.3.7: https://cdn.jsdelivr.net/bootstrap/3.3.7/css/bootstrap.css