7 回答
根据定义,file: URL 是依赖于系统的,它们几乎没有用处。您的示例中的 URL 在本地使用时有效,即链接页面本身位于用户的计算机中。但是浏览器通常拒绝跟随它使用 HTTP 协议获取的页面上的 file: 链接,因此该页面自己的 URL 是 http: URL。当您单击此类链接时,什么也没有发生。目的大概是安全性:防止远程页面访问访问者计算机中的文件。(我认为这个功能首先在 Mozilla 中实现,然后复制到其他浏览器。)
因此,如果您在计算机中使用 HTML 文档,那么 file: URL 应该可以工作,尽管它们的语法存在与系统相关的问题(您如何在这样的 URL 中编写路径名和文件名)。
如果您确实需要在您的计算机上处理一个 HTML 文档并在 Web 服务器上处理另一个 HTML 文档,使链接工作的方法是使用本地文件作为主要文件,如果需要,使用客户端脚本来获取文档从服务器,
在分层目录中组织文件,然后只使用相对路径。
演示:
HTML (index.html)
<a href='inner/file.html'>link</a>
目录结构:
base/
base/index.html
base/inner/file.html
....
基本标记内的 href 值将成为您所有相对路径的参考点,从而覆盖您当前的目录路径值,否则 - '~' 是您网站的根目录
<head>
<base href="~/" />
</head>
当您正在运行IIS
并通过它运行 html 页面时,可能会发生这种情况,然后Local file system
将无法访问。
要使您的链接在本地工作,请直接从文件浏览器而不是 Visual Studio 运行调用 html 页面,F5
或者IIS
只需单击它以从文件系统打开,并确保您使用的是这样的链接:
<a href="file:///F:/VS_2015_WorkSpace/Projects/xyz/Intro.html">Intro</a>
../htmlfilename 和 .html 用户可以这样做 这将解决您重定向到本地文件的任何页面的问题。
尝试将冒号换成:
bar |
。应该这样做
<a href="file://C|/path/to/file/file.html">Link Anchor</a>