Ответ 1
Обновление статуса: Использование: <base href="\\c:\temp\resources\" />
Здесь процесс, который я использовал для создания этого решения, чтобы IE8 использовать Base Attribute для локальных файлов.
Чтобы уточнить: Это W3C проверенное решение работает для IE7, IE8 и всех современных браузерах!
Ссылка Скриншот::
Здесь вы можете видеть, что Адресная строка IE8 не работает, как другие современные браузеры: Черты обратные, и нет протокола file:///
. Однако IE8 отобразит протокол file:///
в строке состояния браузера при обновлении страницы!
Ссылочный снимок экрана:
Поскольку IE8 обрабатывает локальные файлы по-разному, важно понимать протокол IE8 для file:///
.
Чтобы понять, какие синтаксические методы доступны, просмотр Свойства обозревателя (вкладка "Безопасность" ) для локальной интрасети предоставит нам эту информацию. На самом деле никаких изменений здесь нет, просто синтаксис:
На приведенном выше снимке окно Local Intranet Window подтверждает, что требуется обратная косая черта.
Также показано, что протокол file:\\
связан с синтаксисом слэша. Поскольку протокол file:///
подразумевается автоматически с помощью IE8 (ранее упоминалось: см. Строку состояния браузера и заметки, косые черты отображаются правильно!).
Определение этого протокола file:
в теге Base
является проблемой. Решение не использовать протокол!
Ссылка Ссылка 1: Схема URL без протокола:
Не совсем точное чтение, но раздел 4.2 RFC 3986 предоставляет для полноправных URL-адресов, которые пропускают протокол (HTTP или HTTPS) в целом. Когда протокол URL-адресов опущен, браузер использует протокол базовых документов.
Ссылка Ссылка 2: Понимание ссылки на сетевой путь Paul Irish:
* Конечно, если вы просматриваете файл локально, он попытается запросить файл с протоколом
file://
.
В приведенных выше ссылках объясняется, что использование //
позволит любому браузеру использовать известную в настоящее время схему URL при доступе к файлам или активам. Поскольку IE8 является сменой игры, использование \\
вместо //
будет работать для базового тега, поскольку все браузеры будут преобразовывать/интерпретировать это как стандартный file:///
Схема URL (подразумеваются локальные файлы), включая браузер IE7!
Полная разметка HTML | Рабочий DEMO:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Using Base Tag with Local Files IE8 and Modern Browser DEMO</title>
<!-- The name of this file is: test.html -->
<!-- The location of this HTML file on the hard drive is: C:\temp\html\test.html -->
<!-- This unusually constructed Base attribute tag uses two rules to have it work for Locally Hosted IE8 Files that are not server based. -->
<!-- First, the "URL Scheme" is based on "Network Path Reference" which means no Protocol is used. -->
<!-- Second, the "forward slashes" are changed to "back slashes". It the syntax IE8 actually expects. -->
<!-- This entire method is also friendly for modern browsers showing these local files that are not server based. -->
<base href="\\c:\temp\resources\" />
</head>
<body>
<p>
<!-- The location of this "image.jpg" on the hard drive is at: C:\temp\resources\image.jpg -->
<img src="image.jpg" alt="image" />
</p>
</body>
</html>