2

たくさんのhtmlファイルと画像を含む静的ディレクトリがあります。すべての html ファイルには、相対パスを使用した相互リンクが含まれています。たとえば、アルゴリズムを説明するページには、 などのリンクがあります<a href ../../newmethod/algo2.html>Algorithm 2</a>。このディレクトリ内のすべてのものは、どの静的サーバーでも移植可能な方法で非常にうまく機能します。

django を使用して、このディレクトリの下の各 html ファイルにページ バナーを追加したいと考えています。バナーコードを含み、「ssi」ディレクティブを使用して静的htmlsファイルを含むテンプレートを使用してこれを達成する方法はありますか?

解決策が見つからないという問題は、静的 html の相対パスです。ssi を使用してテンプレートに静的 html を含めると、相対パス (html ファイル内の画像パスなど) が完全に間違ってしまいます。たとえば<img src='../images/flow.bmp>、静的 html 内の画像は、画像の正しいアドレスを指していません。

djangoでこの相対URLの問題を修正する方法はありますか?

4

2 に答える 2

0

静的環境でファイルにアクセスする場合の Web サーバーとの違いは、ディレクトリ ルートと Web サーバーのルート ファイル システムが異なる可能性が高いことです。そのために相対パスを調整できます。

また、フレームワークとして、django は html テンプレートがtemplatesアプリ内またはproject/templates/app/レベル内に存在することを期待しています。画像などの静的アセットは、こちらの説明に従って管理する必要があります。ユーザーがアップロードしたメディアは、メディア ファイルとして処理する必要があります

次に、テンプレートで適切な場所で{{STATIC_URL}}またはを使用します{{MEDIA_URL}}

したがって、その場合、現在のテンプレートがディレクトリ../../newmethod/algo2.html内の「cd ../../newmethod」を介してアクセスされるディレクトリにある必要がありますtemplates

于 2012-10-30T06:16:51.467 に答える