我正在使用sorl縮略圖和Django。在我的本地設置上,它可以正常工作,但是在製作過程中縮略圖沒有製作。sorl thumbnail +生產中的django問題
我的代碼如下所示:
{% load thumbnail %}
{% thumbnail up.image "32x32" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% empty %}
<img src="{{ MEDIA_URL }}/images/missing_small.png" alt="" title="" />
{% endthumbnail %}
我啓用了日誌記錄和跟蹤是這樣的:
Traceback (most recent call last):
[...]
File "/usr/local/lib/python2.6/dist-packages/PIL/ImageFile.py", line
215, in load
raise_ioerror(e)
File "/usr/local/lib/python2.6/dist-packages/PIL/ImageFile.py", line
52, in raise_ioerror
raise IOError(message + " when reading image file")
IOError: broken data stream when reading image file
,因爲該文件是存在的,是可讀的錯誤是不是非常有幫助所有。我不知道如何得到更明確的錯誤,或者要嘗試和修復的問題。
然後更莫名其妙的是,它使用manage.py shell
In [1]: from sorl.thumbnail import get_thumbnail
In [2]: im = get_thumbnail('/myproject/static/images/user_profiles/1/11-20-2010-2_5.jpg',
'32x32', crop='center')
In [3]: im
Out[3]: <sorl.thumbnail.images.ImageFile object at 0x29fe090>
In [4]: im.url
Out[4]: 'http://example.com/cache/ff/31/ff318b4a995ff345d1d48e79b67ec62b.jpg'
這讓縮略圖,纔不會使通過模板代碼一個事實。
有人嗎?
這聽起來像是一個權限問題。通過HTTP的Django將在Web服務器的用戶和組下運行,而我非常確定shell管理命令在您的用戶和組下運行。確保該文件的整個路徑以及文件本身都可以被網絡服務器的用戶和/或組讀取。 – 2011-06-10 21:44:33
它似乎不是一個權限問題。我的網絡服務器以用戶www-data運行。我已遞歸地將我的整個應用程序目錄chown到該用戶和組。每條路徑都包含緩存目錄,全世界都可以寫入。同樣的問題依然存在。 – gdonald 2011-06-10 21:52:31