跨浏览器文件 URI 的 3 或 5 个斜线
3 or 5 slashes for cross-browser file URI
我正在 Intranet 中使用 <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 个斜线。
我写下这个问题并回答它,以防有人像我一样感到困惑。
区分两种类型的 <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
帮助我回答问题的链接:
- http://kb.mozillazine.org/Links_to_local_pages_do_not_work
- https://en.wikipedia.org/wiki/Path_(computing)#Uniform_Naming_Convention
Firefox Local Filesystem Links Extension 的 "about" 部分也谈到了它:
我正在 Intranet 中使用 <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 个斜线。
我写下这个问题并回答它,以防有人像我一样感到困惑。
区分两种类型的 <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
帮助我回答问题的链接:
- http://kb.mozillazine.org/Links_to_local_pages_do_not_work
- https://en.wikipedia.org/wiki/Path_(computing)#Uniform_Naming_Convention
Firefox Local Filesystem Links Extension 的 "about" 部分也谈到了它: