7

だから私はDjangoプロジェクトに取り組んでおり、静的ディレクトリから画像をレンダリングできるようにJavascriptを取得する方法を見つけようとしています。myproject/static から静的ファイル (画像、js など) をロードし、myproject/templates からテンプレートをロードするように settings.py を変更しました。これらの各テンプレートの上部に、次の行があります。

{% load staticfiles %}

これにより、テンプレートに次のような画像をロードできます。

<img src="{% static "images/someImage.jpg" %}" width="65" height="36" alt="SomeImage"/>

これで問題なく動作します。画像が読み込まれ、期待どおりにページに表示されます。しかし、私はこれをやろうとしています (まあ、私のチームメイトはとにかくです):

<p><script src="{% static "js/getHeader.js" %}" type="text/javascript"></script></p>

この行は、上記の 2 行と同じファイルにあります。getHeader.js ファイル:

var time = new Date();
var month = time.getMonth();
var day = time.getDate();
var year = time.getFullYear();

if (month == 1 & day == 23 & year == 2013) {
  document.write('<img src="{% static "images/anotherImage.png" %}" width="680" height="210" />');
} else {
  document.write('<img src="{% static "images/yetAnotherImage.png" %}" width="680" height="210"/>');
}

明確にするために、アイデアは、事前定義された日に別のヘッダーを印刷することです。明らかな理由で、テンプレートをレンダリングする Python コードからイメージ/html を分離しようとしているので、イメージ名をパラメーターとして渡すだけではしたくありません。コード自体は正常に実行されますが、ページが読み込まれると代替名が表示されますが、画像自体は表示されません。それらの一般的な空の「画像が見つかりません」ボックスの1つにすぎません。

この Javascript を実際の HTML ページにインライン化すると、画像が適切にレンダリングされることはおそらく言及する価値があります。また、これは本番環境ではなく開発環境にあります。これについては後で対処します。

何を与える?その行は上記の「load staticfiles」行を含むドキュメントに書き込む必要があるため、画像は残りの HTML でレンダリングされるだけであると考えました。これを修正する方法、または別の方法で達成する方法についての提案は大歓迎です!

4

1 に答える 1