如何使用 file: 方案在 html 中指定本地文件?

新手上路,请多包涵

我正在加载一个托管在 Apache 服务器中的 OS X 上的 html 文件,在该文件中我链接到同一目录中的另一个 html 文件,如下所示:

 <a href="2ndFile.html"><button type="submit">Local file</button>

这行得通。但是(由于太长的原因无法进入)我正在尝试使用 file: 方案,但是我无法得到任何工作。这是我使用文件重写上述行的方式:

 <a href="file://192.168.1.57/~User/2ndFile.html"><button type="submit">Local file</button>

(192.168.1.57 是我当前的 IP 地址)

将其更改为以下内容也不起作用:

 <a href="file://Name-Of-MacBookPro/~User/2ndFile.html"><button type="submit">Local file</button>

但是找不到文件,应该如何使用file:scheme来指定呢?

原文由 Gruntcakes 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

file: URL 方案是指客户端计算机上的文件。 file: 方案中没有主机名;您只需提供文件的路径。因此,您本地计算机上的文件将是 file:///~User/2ndFile.html 。注意三个斜线; URL 的主机名部分为空,因此路径开头的斜杠紧跟 URL 开头的双斜杠。您还需要扩展用户的路径; ~ 不在 file: URL 中扩展。因此,您需要 file:///home/User/2ndFile.html (在大多数 Unix 上)、 file:///Users/User/2ndFile.html (在 Mac OS X 上)或 file:///C:/Users/User/2ndFile.html (在 Windows 上)。

出于安全原因,许多浏览器不允许从服务器加载的文件链接到本地文件。因此,您可能无法从通过 HTTP 加载的页面执行此操作;您可能只能从其他本地页面链接到 file: URL。

原文由 Brian Campbell 发布,翻译遵循 CC BY-SA 3.0 许可协议

“file://”url 协议只能用于在本地计算机的文件系统中定位文件。由于此 html 代码由浏览器解释,因此“本地计算机”是运行浏览器的计算机。

如果您遇到找不到文件的错误,我怀疑是因为找不到文件。但是,它也可能是浏览器的安全限制。某些浏览器不允许您从非文件系统 html 页面引用文件系统文件。您可以尝试在运行浏览器的机器上使用命令行中的文件路径来确认这是浏览器限制而不是合法的丢失文件。

原文由 james turner 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题