file:///
ローカルファイルにリンクする場合は、プロトコル(はい、3つのスラッシュ)を使用する必要があります。
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
これらは、ローカルアプリケーションでファイルを自動的に開くことはありません。これは、前のセクションで説明するセキュリティ上の理由によるものです。開いた場合は、ブラウザでのみ開きます。ブラウザがファイルを表示できる場合は表示されますが、そうでない場合は、ファイルをダウンロードするかどうかをたずねられます。
多くのブラウザー(FirefoxやChromeなど)の最新バージョンは、悪意のある動作を防ぐために、httpプロトコルからファイルプロトコルへの移行を拒否します。これを行う場合は、ファイルプロトコルを使用してローカルでWebページを開く必要があります。
なぜそれがなければ行き詰まるのfile:///
ですか?
URLの最初の部分はプロトコルです。プロトコルは、数文字の後に、コロンと2つのスラッシュです。HTTP://
およびFTP://
有効なプロトコルです。C:/
そうではなく、きちんと1つに似ていないと私はかなり確信しています。
C:/
また、これは有効なWebアドレスではありません。ブラウザーはhttp://c/
、ポートが指定されていないことを想定していると想定することもできますが、これは失敗します。
ブラウザは、ローカルファイルを参照していると想定しない場合があります。パブリックサイトは通常、ユーザーのローカルファイルへのリンクを試みないため、この仮定を行う理由はほとんどありません。
ローカルファイルにアクセスする場合は、ファイルプロトコルを使用するように伝えます。
なぜ3つのスラッシュなのですか?
ファイルURIスキームの一部だからです。最初の2つのスラッシュの後にホストを指定するオプションがあります。ホストの指定をスキップすると、自分のPC上のファイルを参照していると見なされます。これfile:///C:/etc
はのショートカットですfile://localhost/C:/etc
。
これらのファイルは引き続きブラウザで開きます。
ブラウザは、インターネット上のどこにいても同じファイルに応答するのと同じように、これらのファイルに応答します。これらのファイルはデフォルトのファイルハンドラー(MS WordやVLC Media Playerなど)で開かれず、ファイルエクスプローラーにファイルの場所を開くよう依頼するなどのことはできません。
これはセキュリティにとって非常に良いことです。
ブラウザのサイトは、オペレーティングシステムとうまくやり取りできません。良いサイトがオープンにあなたのマシンを伝えることができればlecture.mp4でVLC.exe、悪意のあるサイトがオープンにそれを言うことができるvirus.batでcmd.exeを。または、いくつかのUninstall.exeファイルを実行するか、エクスプローラーを100万回開くようにマシンに指示することもできます。
これは便利ではないかもしれませんが、HTMLとブラウザのセキュリティは、あなたがしていることに対して実際には設計されていません。あなたが開くことができるようにしたい場合はlecture.mp4でVLC.exe代わりにデスクトップアプリケーションを書くことを検討してください。