在Intranet站点上,假设我想使用UNC链接到共享上的文件,位于:
\\servername\foldername\filename.rtf
这样做的正确方法似乎是这样的标记:
<a href="file://///servername/foldername/filename.rtf">filename.rtf</a>
这是五个斜杠 - 两个用于协议,一个用于指示文件系统的根,另外两个用于指示服务器名称的开头。
这在IE7中工作正常,但在Firefox 3.6中,只有当html来自本地文件时它才有效。当文件来自Web服务器时,我无法使其工作。链接“死了” - 点击它什么也没做。
Firefox中有解决方法吗?这两个浏览器应该是我现在需要担心的全部内容。
由于这显然是Firefox的一个功能,而不是一个bug,有人可以解释阻止这种类型链接的好处是什么?
答案 0 :(得分:12)
之前已经问过这个问题至少两次了,但在发布之前我无法找到这些帖子(对不起):
Open a direct file on the hard drive from firefox (file:///)
Firefox Links to local or network pages do not work
以下是这三个帖子的答案摘要:
http://
代替file://///
- 这将提供用户无法编辑和保存的文档副本。Security.fileuri.strict_origin_policy
设置更改为false - 这在3.6.15中对我不起作用。 [SO]上的其他用户也报告说它不起作用。Security.fileuri.strict_origin_policy
设置为true,并且似乎没有其他效果。http://
配置Web服务器存在同样的问题。答案 1 :(得分:11)
当使用不同的协议(如http://)提供父HTML页面本身时,像Firefox这样的浏览器拒绝打开file://链接。
最好的办法是配置您的网络服务器,将网络映射文件作为网络资源提供,以便http://可以从同一服务器而不是文件://访问它。
由于目前还不清楚您使用的是哪个网络服务器,因此无法详细说明如何实现此目标。
答案 2 :(得分:5)
例如,在Firefox中打开File:\\\\\yourFileServer\docs\doc.txt
,您需要在Firefox配置中打开一些选项:
user_pref("capability.policy.policynames", "localfilelinks");
user_pref("capability.policy.localfilelinks.sites", "http://yourServer1.companyname.com http://yourServer2.companyname.com");
user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");
答案 3 :(得分:4)
事实证明,我不知道Firefox有这个限制/功能。我可以同情这个功能,因为它可以防止用户无意中访问本地文件系统。幸运的是,有一些有用的替代方案可以在坚持使用HTTP协议时提供类似的用户体验。
通过UNC路径访问内容的另一种方法是使用WebDAV协议发布您的内容。某些内容管理系统(如MS SharePoint)使用WebDAV提供对文档和页面的访问。就最终用户体验而言,它的外观和感觉就像访问具有UNC路径的网络文件一样;但是,所有文件交互都是通过HTTP执行的。
可能需要对文件访问理念进行适度更改,因此我建议您阅读与特定服务器技术相关的WebDAV协议,配置和权限管理。
如果您有兴趣了解有关在几个领先的HTTP服务器上配置和使用WebDAV的更多信息,可以使用以下链接:
答案 4 :(得分:1)
我不知道这是否有效,但请试一试!旧文章,但可能仍然有用。
http://www.techlifeweb.com/firefox/2006/07/how-to-open-file-links-in-firefox-15.html
答案 5 :(得分:0)
添加您自己的策略,在位置栏中打开配置“ about:config ”并添加三个新条目:
将http://localhost替换为您的网站。
适用于Firefox 70.0。