2011-03-15 57 views
18

在一個內部網站,比方說我要鏈接到文件上使用UNC共享,網址爲:解決方法HREF =「文件:///// ......」在Firefox

\\servername\foldername\filename.rtf 

似乎這樣做正確的做法是,像這樣的標記:

<a href="file://///servername/foldername/filename.rtf">filename.rtf</a> 

這五個斜線 - 其中兩個是協議,一個指示文件系統的根目錄,然後兩個指示服務器啓動名稱。

這在IE7中正常工作,但在Firefox 3.6中,只有當html來自本地文件時,它纔會起作用。當文件來自Web服務器時,我無法使其工作。鏈接是「死」 - 點擊它什麼都不做。

在Firefox中有沒有解決這個問題的方法?這兩個瀏覽器應該是我現在需要擔心的一切。

由於這顯然是Firefox的一個功能,而不是一個錯誤,有人可以解釋什麼好處是防止這種類型的鏈接?

+0

是否''filename.rtf工作? – 2011-03-15 20:50:40

+4

這是一個瀏覽器安全措施。你想讓別人的網頁在你的電腦後面加載文件嗎? – pstanton 2011-03-15 20:52:55

+1

@Brian - 不,href =「// ...」'在Firefox中也不起作用,儘管它在IE中工作。幾乎任何在IE中都有效。 ('file://'工作,'file:///'工作,'file:// \\'工作,'//工作,'\\'工作等)。 – hmqcnoesy 2011-03-15 21:43:30

回答

3

事實證明,我是不知道的Firefox有此限制/功能。我可以同情該功能,因爲它可以防止用戶無意中訪問本地文件系統。幸運的是,有一些有用的選擇可以在堅持HTTP協議的同時提供類似的用戶體驗。

一種可以替代的通過UNC路徑訪問內容是使用WebDAV協議來發布內容。一些內容管理系統(如MS SharePoint)使用WebDAV來提供對文檔和頁面的訪問。至於最終用戶體驗而言,它的外觀和感覺就像訪問與UNC路徑的網絡文件;但是,所有文件交互都是通過HTTP執行的。

這可能需要在你的文件訪問理念的適度變化,所以我建議你閱讀有關WebDAV協議,配置和許可管理,因爲它涉及到特定的服務器技術。

這裏有幾個鏈接,如果您有興趣瞭解更多有關配置和使用WebDAV少數領導HTTP服務器上可能會有所幫助:

10

像Firefox這樣的瀏覽器拒絕打開文件://鏈接,當父HTML頁面本身使用不同的協議,如http://。

你最好的賭注是你的服務器配置,以提供網絡映射文件作爲一個網絡資源,以便它可以通過HTTP訪問:從同一個服務器,而不是//按文件://。

由於目前還不清楚您使用的是哪個網絡服務器,因此我無法詳細瞭解如何實現此目的。

+1

我同意。畢竟,這是網絡服務器的用武之地。 – 2011-03-15 21:01:15

+2

使用http://提供文檔的副本,因此用戶不打開實際文件。因此,如果您要鏈接到您希望用戶能夠編輯的文檔,則應使用file://。 – hmqcnoesy 2011-03-15 21:46:26

+1

如果這是唯一的目的,我會建議看看Google文檔。 – BalusC 2011-03-15 22:19:29

1

我不知道這是否會起作用,但給它一個鏡頭!舊文章,但可能仍然有用。

http://www.techlifeweb.com/firefox/2006/07/how-to-open-file-links-in-firefox-15.html

+0

這需要更改所有網站訪問者的瀏覽器設置。不知道這是OP的想法。 – BalusC 2011-03-15 20:56:29

+0

這就是當你告訴你的IT管理員在他的下一個圖像構建中將其燒成firefox時:P – 2011-03-15 20:57:34

+0

我測試了這個,並且能夠在Windows Vista中使用Firefox 3.6。不幸的是,我沒有辦法讓用戶的機器像這樣更新。 – hmqcnoesy 2011-03-17 10:50:01

11

此問題已被詢問至少兩次,但在發佈我自己的(對不起)之前,我無法找到這些帖子:

Open a direct file on the hard drive from firefox (file:///)

Firefox Links to local or network pages do not work

這是答案的所有三個職位摘要:

  • 使用WebDAV   —這對我來說是最好的解決辦法,雖然更多地參與比我早預料。
  • 使用http://而不是file://///   —這將提供用戶無法編輯和保存的文檔的副本。
  • 如上所述在客戶端編輯user.js here   —這適用於Firefox 3.6.15中的我,但無法訪問客戶端計算機,這不是一個解決方案。
  • 在Firefox中,使用約:config,將Security.fileuri.strict_origin_policy設置更改爲false   —這對我在3.6.15中不起作用。 [SO]上的其他用戶也報告說它不起作用。
  • 使用locallinks Firefox擴展  —這會將Security.fileuri.strict_origin_policy設置爲true,並且似乎沒有其他效果。
  • 讀取服務器端文件並將其作爲回覆發送  —這與簡單配置您的Web服務器使用http://的問題相同。
+0

'security.fileuri.strict_origin_policy = false'也不''user.js' /'prefs.js'更新對FF 26有效(如果用於本地CSS引用) – 2016-03-22 22:31:59

+1

@AndreasDietrich'prefs.js'解決方案[再次運行](http://superuser.com/a/1060550/515869) – ederag 2016-04-02 16:37:23

+0

@ederag thx - 這個反饋應該是非常有價值的 - 我現在正在使用本地運行的HTTP服務器來服務這個文件, FF 26用於測試/開發GWT應用程序(開發模式兼容性/支持原因) – 2016-04-02 23:28:05

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"); 
+0

不適用於FF 26(如果用於本地CSS參考) – 2016-03-22 22:29:57

+0

此功能已[恢復](https://bugzilla.mozilla.org/ show_bug.cgi?ID = 995943#C158)。 (在Firefox 45上檢查) – ederag 2016-04-02 15:37:45