5 слешей для кросс-браузерного файла URI

Я использую <a href="file:..."> ссылки внутри интранета для доступа к локальной папке.

Меня беспокоит количество косых черт, которые я должен написать в этих URI для кросс-браузерной совместимости.

Internet Explorer 11.904.16299.0

   file://server/share/path/to/file ok
  file:///server/share/path/to/file KO
 file:////server/share/path/to/file ok
file://///server/share/path/to/file ok

Edge 41.16299.820.0

   file://server/share/path/to/file ok
  file:///server/share/path/to/file KO
 file:////server/share/path/to/file ok
file://///server/share/path/to/file ok

Firefox 60.0 with Local Filesystem Links Extension

   file://server/share/path/to/file KO
  file:///server/share/path/to/file KO
 file:////server/share/path/to/file KO
file://///server/share/path/to/file ok

Когда я ищу ответы в Stack Overflow или аналогичных, я в конечном итоге в этих сообщениях, говоря, что правильная сумма составляет 3 слеша.

Я пишу этот вопрос и отвечаю на него, если кто-то запутается, как я.

1 ответ

Решение

Важно различать 2 типа <a href="file:...>" ссылки: локальные пути и пути UNC.

URI локального пути

Это путь к файлу, доступному на клиентском компьютере, либо потому, что файл находится в его локальном хранилище, либо потому, что он доступен через подключенный диск / подключенную папку.

Эти URI занимают 3 слеша:

  • file:///p:/share/path/to/file
  • file:////mnt/share/path/to/file

Четвертая косая черта для второго примера - корень UNIX /,

UNC путь URI

Формат, который я показываю в моем вопросе, file://///server/share/path/to/file, известный как путь UNC.

Это путь, доступный с клиентского компьютера через внутренний URI, например my.server.com, В Windows, например, это когда вы используете URI сервера для доступа к файлу, а не к его букве подключенного диска.

Эти URI занимают 5 слешей:

  • file://///my.server.com/share/path/to/file

Ссылки, которые помогли мне ответить на мой вопрос:

Раздел "о" расширения ссылок на файловую систему Firefox также говорит об этом:

Другие вопросы по тегам