web-dev-qa-db-ja.com

Firefoxのhref = "file:///// ..."の回避策

イントラネットサイトで、UNCを使用して共有上のファイルにリンクしたいとします。

\\servername\foldername\filename.rtf

これを行う正しい方法は、次のようなマークアップを使用することです。

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

これは5つのスラッシュです。2つはプロトコル用で、1つはファイルシステムのルートを示し、2つはサーバー名の始まりを示します。

これはIE7では正常に機能しますが、Firefox 3.6では、htmlがローカルファイルからのものである場合にのみ機能します。ファイルがWebサーバーから送信された場合、動作させることができません。リンクは「デッド」です-クリックしても何も起こりません。

Firefoxでこれを回避する方法はありますか?これらの2つのブラウザーは、今のところ心配する必要があるすべてです。

これは明らかにバグではなくFirefoxの機能なので、誰かがこのタイプのリンクを防ぐことの利点を説明できますか?

20
hmqcnoesy

結局のところ、Firefoxにこの制限/機能があることは知りませんでした。ユーザーが意図せずにローカルファイルシステムにアクセスするのを防ぐため、この機能に同情できます。幸いなことに、HTTPプロトコルにこだわりながら同様のユーザーエクスペリエンスを提供できる便利な代替手段があります。

UNCパス経由でコンテンツにアクセスする別の方法は、 WebDAV プロトコルを使用してコンテンツを公開することです。 MS SharePointなどの一部のコンテンツ管理システムは、WebDAVを使用してドキュメントおよびページへのアクセスを提供します。エンドユーザーエクスペリエンスに関する限り、それはUNCパスを使用してネットワークファイルにアクセスするように見えます。ただし、すべてのファイルインタラクションはHTTP経由で実行されます。

ファイルアクセスの考え方を少し変更する必要がある場合があるため、WebDAVプロトコル、構成、およびアクセス許可管理について、特定のサーバーテクノロジに関連するものを読むことをお勧めします。

いくつかの主要なHTTPサーバーでWebDAVを構成および使用する方法について詳しく知りたい場合に役立つリンクを以下に示します。

4
kbrimington

この質問は少なくとも2回前に尋ねられましたが、自分の投稿する前にそれらの投稿を見つけることができませんでした(ごめん):

firefox(file:///)からハードドライブ上の直接ファイルを開く

ローカルまたはネットワークページへのFirefoxリンクが機能しません

以下は、3つの投稿すべてからの回答の要約です。

  • WebDAVを使用します—これは私にとって最良のソリューションですが、予想よりもはるかに複雑です。
  • 使用する http:// の代わりに file:///// —これは、ユーザーが編集および保存できないドキュメントのコピーを提供します。
  • here の説明に従ってクライアント上でuser.jsを編集します。これはFirefox 3.6.15で機能しましたが、クライアントマシンにアクセスできなくても解決策ではありません。
  • Firefoxでは、about:configを使用し、Security.fileuri.strict_Origin_policy falseに設定—これは3.6.15では機能しません。 [SO]の他のユーザーも、機能しないと報告しています。
  • locallinksFirefox拡張機能を使用—これにより、Security.fileuri.strict_Origin_policyをtrueに設定すると、他の効果はないように見えます。
  • ファイルサーバー側を読み取り、それを応答として送信しますthis —これは、単にhttp://
13
hmqcnoesy

Firefoxなどのブラウザは、http://などの別のプロトコルを使用して親HTMLページ自体が提供される場合、file://リンクを開くことを拒否します。

最善の策は、ネットワークマップファイルをWebリソースとして提供するようにWebサーバーを構成し、file://ではなく同じサーバーからhttp://でアクセスできるようにすることです。

どのWebサーバーを使用しているかは不明であるため、これを実現する方法について詳しく説明することはできません。

11
BalusC

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");
6
Rukicc

これがうまくいくかどうかはわかりませんが、試してみてください!古い記事ですが、潜在的にまだ有用です。

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

1
Brian D