1. ホーム
  2. python

[解決済み] Django テンプレートに画像ファイルを含めるには?

2023-05-12 07:07:56

質問

私は Django の初心者で、'dubliners' と 'book' というアプリを開発している簡単なプロジェクトを通して、Django を学ぼうとしています。ディレクトリ構造はこのようなものです。

dubliners/book/  [includes models.py, views.py, etc.]
dubliners/templates/book/

各Webページのヘッダーに表示する必要のあるJPGファイルを持っています。このファイルはどこに保存すればよいのでしょうか?テンプレートを使って表示するためのタグには、どのパスを使用すればよいのでしょうか?さまざまな場所とパスを試しましたが、今のところ何もうまくいきません。

...

以下に投稿された回答ありがとうございます。しかし、画像への相対パスと絶対パスの両方を試してみましたが、やはりウェブページに表示される画像アイコンが壊れてしまいます。例えば、ホームディレクトリに画像があり、テンプレートでこのタグを使用する場合。

<img src="/home/tony/london.jpg" /> 

画像が表示されません。しかし、Web ページを静的な HTML ファイルとして保存すると、画像は表示されるので、パスは正しいのです。多分、Django に付属するデフォルトの Web サーバは、特定のパスにある場合にのみ画像を表示するのでしょうか?

どうすれば解決できますか?

実稼働環境では、テンプレートから生成された HTML が、ホストにメディア ファイルが保存されている場所を指すようにするだけです。したがって、テンプレートには、たとえば

<img src="../media/foo.png">

そして、そのディレクトリに関連するファイル(複数可)があることを確認するだけです。

を開発中に使用することは、別の問題です。django のドキュメントに簡潔かつ明確に説明されているので、そこにリンクしてここに入力する方が効果的ですが、基本的には、ディスク上の場所へのハードコードされたパスを持つサイトメディア用のビューを定義することになるでしょう。

正しい ここで .