12

sorl サムネイルを使用して静的ファイルのサイズを変更したいのですが、うまくいきません

ここに私のコードがあります

{% if not new.photo %}

{% with path="{{STATIC_URL}}/images/empty-news.jpg" %}
{% thumbnail path "80x80" crop="center" as im %}
<a href="#" class="image"><img alt="" src="{{im.url}}" class="frame2"></a>
{% endthumbnail %}
{% endwith %}

{% else %}
{% thumbnail new.photo "80x80" crop="center" as im %}
<a href="{% url news_detail new.slug %}" class="image">
<img alt="" src="{{im.url}}" class="frame2"></a>
{% endthumbnail %}
{% endif %}

画像がある場合は画像が表示されますが、画像がない場合はサムネイルが機能しないため、デフォルトの画像を使用できません

4

5 に答える 5

7

通常テンプレートタグに渡すパスを渡す、私にとってはうまくいった醜いオプションstatic(httpプロトコルを想定しているため、改善される可能性があることに注意してください):

{% with 'http://'|add:request.get_host|add:STATIC_URL|add:image_path as path %}
    {% thumbnail path "720x306" crop="center" as im %}
      <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
    {% endthumbnail %}
{% endwith %}

これは、静止画像への絶対パスを構築することによって機能します。

于 2013-08-29T16:38:02.613 に答える
3

正直なところ...これは問題ないようです。これは、セットアップに単純な問題がある可能性があることを意味します。

不適切な設定の可能性: 設定で STATIC_URL をどのように定義していますか? また、DEBUG の値は何Trueですか (ローカルで開発している場合は、これが設定されていることを確認してください)。@goliney が指摘したように、パスがめちゃくちゃになっている可能性があります。サムネイル ブロックを引き出してみて、画像の src を に設定し{{ STATIC_URL }}/images/empty-news.jpg、サムネイルを実行する前に動作することを確認してください。

サムネイルをロードするのを忘れた:ブロックへの参照の前に必ず{% load thumbnail %}テンプレートを挿入してください。{% thumbnail %}

于 2012-10-18T14:42:50.763 に答える
2

私自身も同じ問題に取り組んでいます。テンプレートで STATIC_URL を使用する場合は、サムネイル タグに渡すパスが絶対パスであることを確認する必要があるようです (パスを外部のように扱います)。

どうやら相対パスは MEDIA_ROOT 内の画像に対してのみ機能し、モデルからの画像用に設計されているようです。

テストとして、完全な http パスを入力してみてください。

参照: http://sorl-thumbnail.readthedocs.org/en/latest/examples.html

于 2013-03-27T16:30:28.960 に答える