15

次の静的ファイルをロードしようとしています

 <a href="{%static 'static/images/'{{ image.title }}'.png' %}">img file</a> 

whereは、データベースから派生しimageた for ループにあります。images

しかし、私は単にエラーが発生しましたCould not parse the remainder: '{{' from ''static/matrices/'{{'

これを修正するにはどうすればよいですか? 相対パスは、同じ html テンプレートを使用してサブセクションでも使用されるため、使用できません。

4

6 に答える 6

19

staticfiles から static タグに完全な文字列を渡す必要があります。これは、静的ストレージを使用してファイルを検索できるようにするためです。

{% load staticfiles %}
{% with 'images/'|add:image.title|add:'.png' as image_static %}
  {% static image_static %}
{% endwith %}

ただし、ユースケースでは、画像モデル自体に画像のパスを保存するだけの方がよい場合があります。

于 2015-07-23T16:29:35.613 に答える
17

静的パスに空の文字列を使用し、次のように独自のセクションで変数を使用することで、これを機能させました。

<a href= "{% static "" %}{{obj.a}}/{{obj.b}}/{{obj.c}}.gz" >Name</a>
于 2014-03-13T07:46:13.757 に答える
14

get_static_prefixテンプレートタグを使用できます。get_static_prefixで指定されたパスを含む変数ですSTATIC_URL。あなたのコードは次のようになります。

{% load static %}
<a href="{% get_static_prefix %}static/images/{{ image.title }}.png">img file</a>

また

{% load static %}
{% get_static_prefix as STATIC_PREFIX %}
<a href="{{ STATIC_PREFIX }}static/images/{{ image.title }}.png">img file</a>

参考:get_static_prefix

于 2016-12-24T05:29:33.503 に答える
4

タグのネストは避ける必要があります。

何を解決しようとしていますか? 画像は動的コンテンツの一部ではありませんか? static タグは、アップロードされたメディア ファイルではない静的コンテンツ用です。

静的タグを使用する必要がある場合、正しい方法は次の順序になります。

{% static image %} or {% static image.file %}

オブジェクトのレイアウトによって異なります。ImageField(inherits )を使用している場合FileField、画像オブジェクトは既にパスを保持しているため、手動で拡張子を追加する必要はありません。

于 2013-08-04T08:08:43.073 に答える
3

私がやったことは、名前自体からパスを分割することでした。これらの画像はタブを表し、静的で連続しています。それらはイメージごとにデータベースに接続されていません。

実行ごとに html を繰り返したくないので、少し単純化したこのような forloop を実行することになりました。

{% for option in options_obj %}
   <img class="highlight" src="{% static "store/img/editor/tab-" %}
   {{ option.name.lower }}-selected.png">
{% endfor %}

編集:これはほとんどの状況で機能しますが、実際に混乱する可能性もあります. 私の場合、これは言語設定ごとに異なる画像を使用し、同時に CachedStaticFilesStorage などのツールを使用したときに発生しました。画像に言語コードなどを追加する必要がある場合、これはより確実なソリューションです

{% for option in options_obj %}
    <img class="highlight" src="{% static "store/img/editor/tab-"
    |add:LANGUAGE_CODE|add:"-selected.png" %}">
{% endfor %}
于 2013-12-17T07:46:17.503 に答える
-25

引用多すぎ!

ただ

<a href="{% static 'images/{{ image.title }}.png' %}">img file</a> 

すでに静的をロードしているため、リンクで静的を呼び出す必要はありません

于 2013-08-04T08:22:58.957 に答える