1. ホーム
  2. html

[解決済み] file:スキームを使用してhtml内でローカルファイルを指定するには?

2022-03-03 23:16:47

質問

OS X 内蔵の Apache サーバーでホストされている html ファイルを読み込んでいて、そのファイル内で、同じディレクトリにある別の html ファイルに以下のようにリンクしています。

<a href="2ndFile.html"><button type="submit">Local file</button>

これは動作します。しかし、(理由は長くなるので省略しますが)私は代わりにfile:スキームを使用して実験していますが、何も動作させることができません。以下は、file: スキームを使用して上記の行を書き直したものです。

<a href="file://192.168.1.57/~User/2ndFile.html"><button type="submit">Local file</button>

(192.168.1.57は現在の私のIPアドレス)

に変更しても、うまくいきません。

<a href="file://Name-Of-MacBookPro/~User/2ndFile.html"><button type="submit">Local file</button>

しかし、ファイルが見つかりません。file: スキームを使用してどのように指定すればよいのでしょうか?

どのように解決するのですか?

その file: URLスキームは、クライアントマシン上のファイルを参照します。の中にはホスト名はありません。 file: スキームでは、ファイルのパスを指定するだけです。つまり、あなたのローカル・マシン上にあるファイルは file:///~User/2ndFile.html . URLのホスト名部分は空なので、パスの先頭のスラッシュがURLの先頭のダブルスラッシュに続いていることに注意してください。また、ユーザーのパスを展開する必要があります。 ~ では展開されません。 file: の URL を指定します。そのため、次のようなものが必要になります。 file:///home/User/2ndFile.html (ほとんどのUnixで)。 file:///Users/User/2ndFile.html (Mac OS Xの場合)、または file:///C:/Users/User/2ndFile.html (Windowsの場合)。

多くのブラウザは、セキュリティ上の理由から、サーバーから読み込まれたファイルからローカルファイルへのリンクを許可していません。そのため、HTTP経由で読み込まれたページからは、このようなことはできません。 file: の URL を他のローカルページから取得することができます。