4

で困っていsorl-thumbnailます。

私のテンプレートは次のとおりです。

{% thumbnail project.image "75x75" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% empty %}
<p>:(</p>
{% endthumbnail %}

レンダリングされた Web ページで、サムネイルの次のパスを取得します。

<img src="/media/cache/ff/29/ff299c50543aa807b0fbd28faf271e63.jpg" width="75" height="75">

my は、Apacheでサーバー上のローカル フォルダーにマップされるようにMEDIA_URL設定されているため、これはすべて意味があります。/media/httpd.conf

問題は、このパスがサーバー上に存在しないため、画像が壊れたリンクとして表示されることです。

カスタム ストレージ オブジェクトを使用していることは注目に値しますが、sorl.thumbnail ImageField. またmemcached、サーバー上で実行されているキャッシュ バックエンドを使用しています。

面倒なことは、エラーが発生していないにもかかわらず、エラーが発生しないため、THUMBNAIL_DEBUGDEBUGが問題なのかを確認するのが難しいことです。{% empty %}ステートメントがトリガーされず、適切なキャッシュ ファイルがサーバーに表示されないため、サムネール ファイルをディスクに書き込めませんが、成功として返されると確信しています。エラーがないため、理由はわかりません。

私はこの時点でちょっと立ち往生しているので、助けていただければ幸いです。

編集:

私は今 sorl をあきらめて、代わりに簡単なサムネイルを使用していますが、これは正常に機能しています。

4

2 に答える 2

2

私はあなたと非常によく似た問題を抱えていましたeasy-thumbnails。外部ソースからサムネイルを作成する必要があるため、使用できません。私が理解したのは、ステージングで開発と同じデータベースを使用しているため、開発で画像をレンダリングした後、キャッシュされたファイル名をデータベースに保存し、ステージングでレンダリングしようとすると、同じファイル名からファイル名を取得しますデータベースですが、明らかにファイルはステージングされていません。

実行してみてください

./manage thumbnail clear
于 2014-05-30T02:52:13.637 に答える
0

間違ってエンコードされた URL を使用したため、Sorl はサムネイルを作成しませんでした。' ' または '%20' の代わりに '+' が含まれ、sorl はそれらを '%2B' ('+' エンコード) に再エンコードします。結果の URL エラーは抑制され、サムネイルの作成は無視されました。たぶん、この問題で誰かを助けるでしょう。

于 2014-11-13T14:07:55.890 に答える