跨浏览器文件URI的3或5个斜杠

问题描述 投票:1回答:1

我在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个回答
1
投票

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

本地路径URI

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

那些URI需要3个斜杠:

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

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

他们的道路

我在问题中展示的格式file://///server/share/path/to/file被称为UNC路径。

这是一个可以通过内部URI从客户端计算机访问的路径,如my.server.com。例如,在Windows中,这是使用服务器URI访问文件而不是其映射的驱动器号。

那些URI需要5个斜杠:

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

帮助我回答我的问题的链接:

Firefox Local Filesystem Links Extension的“about”部分也讨论了它:

© www.soinside.com 2019 - 2024. All rights reserved.