У нас есть некоторые HTML-страницы (локальные, а не на веб-сервере), которые используют элемент BASE для идентификации определенного базового каталога, содержащего кучу общих таблиц стилей и изображений. Вот пример (страница хранится в каталоге c:\temp\html\test.html, каталог ресурсов c:\temp\resources):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<base href="file:///c:/temp/resources/"></base>
</head>
<body>
<p><img src="image.jpg" /></p>
</body>
</html>
Это хорошо работает во всех браузерах, которые я тестировал (Firefox, Chrome, IE9) и отлично работает в IE8 в режиме Quirks. Но в IE8, работающем в режиме стандартов IE8 (по умолчанию для этой страницы - и на реальных страницах - требуемый режим), любая таблица стилей, script или ссылки на изображения сломаны - это как если бы элемент полностью игнорировался.
Я пробовал другие варианты для элемента - <base href="file:///c:/temp/resources/">
или <base href="file:///c:/temp/resources/"/>
, а также всевозможные разные URL-адреса файлов, например. file:///c:/temp/resources/test.html и т.д., а также относительные hrefs для базы, но ничто, кажется, не убеждает загружать изображения/таблицы стилей/скриптов.
Я знаю, что приведенный выше пример кажется тривиальным, но в нашем реальном сценарии мы должны загружать страницы в IE8 в режиме стандартов IE8 и должны устанавливать конкретный, поэтому я действительно пытаюсь найти решение, если оно есть.
Я добавил некоторые ссылки на ошибку в ранних версиях IE8, относящихся к элементу, но они помечены как исправление довольно давно, и я тестирую это на чистой виртуальной машине Windows 7 с применением всех обновлений IE8.