【问题标题】:3 or 5 slashes for cross-browser file URI跨浏览器文件 URI 的 3 或 5 个斜杠
【发布时间】:2019-06-30 04:32:23
【问题描述】:

我在 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 个斜线。

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

【问题讨论】:

    标签: uri local unc file-uri


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2010-12-25
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 2011-10-10
      • 2015-02-19
      • 1970-01-01
      相关资源
      最近更新 更多