Это определенно очень раздражающая ошибка в IE, но я только что нашел обходной путь.
Нужно понять, что IE разрешает относительный путь, а затем быстро его игнорирует.Вы можете даже увидеть полностью разрешенный URL-адрес, проверив значение свойства href базового тега позже, используя JavaScript.Таким образом, этот (довольно глупый) фрагмент кода сбрасывает атрибут href тега <base>
в очень полный URL, который IE уже разрешил, в результате чего он больше не игнорируется.
Добавьте следующий HTML-код вв верхней части страницы, сразу после тега и до того, как вы фактически используете какие-либо URL:
<!--[if IE]><script type="text/javascript">
// Fix for IE ignoring relative base tags.
(function() {
var baseTag = document.getElementsByTagName('base')[0];
baseTag.href = baseTag.href;
})();
</script><![endif]-->
(необходимы условные комментарии, поскольку этот код может разбить тег <base>
в Safari / Chrome, идругим браузерам это явно не нужно.)
Такая глупая ошибка.