4

我正在使用<a href="file:...">Intranet 中的链接进行本地文件夹访问。

困扰我的是我必须在这些 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 个斜线。

我写下这个问题并回答它,以防有人像我一样感到困惑。

4

1 回答 1

3

区分两种类型的链接很重要<a href="file:...>":本地路径和 UNC 路径。

本地路径 URI

这是在客户端机器内可访问的文件的路径,因为该文件位于其本地存储中,或者因为它可通过映射驱动器/已安装文件夹访问。

这些 URI 采用 3 个斜杠:

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

第二个示例的第四个斜杠是 UNIX root /

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 本地文件系统链接扩展的“关于”部分也谈到了它:

于 2019-02-06T09:07:06.433 回答