記事内画像のURIは相対URIで書きたい

画像に限ったことではありませんが、記事中に画像ファイル等を入れる際、そのファイルの URI をどうするか。例えばウチのように MovableType を用いて日記を書いていると、記事を新規投稿すると index.html と アーカイブ(個別記事)が生成されるわけで、その時点では画像ファイルの URI は相対パスで指定することができません。例として画像のディレクトリをルート直下の/img/としている場合、 index.html ではimg/hoge.pngでいいですが、アーカイブのほうは../img/hoge.pngとせねばならないからです。(アーカイブのディレクトリを特に切っていない場合は問題ありませんが。)

絶対 URI (http://…)で書けば済む話なんですが、一つ難点があるのはなんらかの事情でサイト移転しなければならなくなったときに全部書き直しになるということです。勿論そんなことは避けるべきでしょうが、借り物サーバーである以上、その可能性はあります。一括置換すれば済むのですが、面倒だし。

(例) <a href="/orange/natsumikan.html">

「/」から書き始めたURLを用いると、サーバーのルートに対する相対URLとして扱われます(この場合、[orange] がサーバーの第1階層のディレクトリという意味)。様々な階層のファイルから、ホームページ(/index.html)にリンクするような場合にうまく使うことができます。

つまり現在の位置(ディレクトリ)がどこであれ、相対 URI を「/」から書き始めれば必ずルートに戻れるということ。最初の MovableType の例でいえば、index.html であれ日別・月別アーカイブであれカテゴリーアーカイブであれ、/img/hoge.pngとすれば良い、ということ。

ちなみに、「/」から書き始めた URI は絶対パスというそうですね。ややこしいですが、ルートを起点とするパスは絶対パス、現在の位置を起点とするパスは相対パス、と覚えればいいようで。

コメント

コメント投稿

コメント投稿フォーム