ブラウザで UNC パスのリンクをオープンする方法
直接的には Redmine と関係はないですが、 私は Redmine を使っていると 共有 PC などへのリンクを張りたくなることが結構あるので、 知っていると便利かなと思います。
file URI と UNC パス
PC 内にあるローカルファイルをブラウザなどで表示すると file://D:/home/foo.html
といったアドレスになります。
このアドレスは file URI
といって、 URI の表記の一つです。これは RFC で定義されていて、ブラウザでちゃんと扱える表記法なのですが、 http:// のページに張られているローカルファイル(file://)へのリンクは、 メジャーなブラウザの多くではセキュリティ上、クリックしてもリンク先を表示できないようになっています。 (ローカルファイルからローカルファイルへのリンクは可能です)
ローカルファイルへのリンクを開きたいということはあまりないのですが、 ネットワーク上の共有 PC へのリンクを開きたいということは良くあります。
ネットワークコンピューターへのパスは UNC パス といって
\\comp_name\share_name\foo\bar.doc
のような書き方をします。これを file URI を使って書くと
file://///comp_name/share_name/foo/bar.doc
というようになります。ただし、file URI のパスなので、 基本的にリンク先を開くことは出来ません。 これをブラウザで開くためには、ブラウザごとに対応する必要があります。
ちなみに \ を / に直したり、スラッシュを 5 つ書いたり、とパスをリンク表記に直すのは 若干面倒ですが、 Redmine では Wiki UNC プラグイン を使うと Wiki マクロで UNC パスのリンクが簡単に作成できます。
前回の Redmine Advent Calendar の記事 で Wiki マクロの作成方法を書きましたが、 ちょっとしたコードですごく便利なプラグインが作れというよい例じゃないかとと思います。 私も TestLink Link プラグイン を作る際に参考にさせていただきました。
Internet Explore
IE の場合は簡単です。IE では PC 内のローカルファイルへのリンクは開けませんが、 UNC パスへのリンクでは何もしなくてもそのままオープンすることが出来ます。
Firefox
Firefox も少し面倒ですが、設定を行うと開けるようになります。
Firefox で GUI が提供されていない設定を変更するには user.js に JavaScript のコードを記述します。
http://level.s69.xrea.com/mozilla/index.cgi?id=aboutconfig
まず、 user.js をおく設定ファイルの場所ですが、OS によって変わります。 Windows では以下のようなパスになっています。
%AppData%\Mozilla\Firefox\Profiles\(ランダム文字列).defaultWindows ではアプリケーションデータをおく場所が変わるため、バージョンによっても変わってきます。 ただし、環境変数が設定されていて %AppData% という % をつかった記述で値を取得することが出来ます。
%AppData%\Mozilla\Firefox\Profiles
といったパスをそのまま
エクスプローラーのアドレスに書くとフォルダーが表示できます。
次に user.js ファイルを作成して、設定ディレクトリにおきます。
すでに user.js ファイルが存在している場合は、追加書き込みしてください。 また、 prefs.js に追記しても問題ありません。
内容は次のような記述になります。
user_pref("capability.policy.policynames", "localfilelinks"); user_pref("capability.policy.localfilelinks.sites", "http://foo.bar.co.jp"); user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");"
http://foo.bar.co.jp
" を Redmine などのリンクを許可したいページのサーバーにしておきます。
複数ある場合はスペースで区切って記述してください。後は Firefox を再起動すると開けるようになります。
http://webos-goodies.jp/archives/50214493.html
Google Chrome
Google Chrome では 複雑な設定をしたい場合は起動オプションで指定します。http://chrome.half-moon.org/43.html
私は確認できなかったのですが、 --allow-file-access-from-files オプションを指定すると file:// のパスが開けるようになるようです。
追記
Windows 7 でも Chrome がインストールできるようになったので、確認してみたところ、 UNC ファイルは開けませんでした。よくみるとローカルファイルからローカルファイルへのリンクを開くことができるようにするためのオプションでした。
Safari, Oprera など他のブラウザ
そのほかの Safari, Oprera なども調べてみたのですが、 これらは開けるように設定を変更する方法はないようです。http://www.websina.com/bugzero/kb/browser-file-url.html
(リンク先に書かれている右クリックで [新しいタブを開く] という方法も 今のバージョンのブラウザはほとんどできなくなっているみたいです。)
こういったブラウザでも Drag&Drop を使えば、表示することが出来ます。
これはリンクをクリックするのではなく、 リンクを押した後、そのままブラウザのアドレスのところまでドラッグして、 離します。
この方法であれば、ほとんどのブラウザでオープンすることはできるのではないかと思います。

- 関連記事
-
- フリーのクラウド - DropBox, Evernote
- ブラウザで UNC パスのリンクをオープンする方法
- ブラウザとレンダリングエンジン
- フリーの日本語入力ソフト (IME) 機能比較
- GitHub, Bitbucket でのファイルのダウンロード方法
Facebook コメント
コメント