2012-10-18 19 views
11

voglio ridimensionare i miei file statici con SORL miniature ma doesnt lavoroCome eseguire il thumbnail dei file statici?

ecco i miei codici

{% 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 %} 

Se ho un'immagine che mostra l'immagine, ma quando non ho un'immagine non posso utilizzare un'immagine predefinita perché la miniatura non funziona

+0

Sei sicuro che 'percorso' contiene un link valido per l'immagine? –

+0

ecco le semplici motivazioni delle miniature per essere limitato a 'MEDIA_ROOT' https://github.com/SmileyChris/easy-thumbnails/issues/210 –

risposta

3

Onestamente ... questo sembra buono; il che significa che probabilmente c'è qualcosa di sbagliato nella tua configurazione.

Possibile configurazione errata: Come si definisce STATIC_URL nelle impostazioni? Inoltre, qual è il valore di DEBUG (assicurati che sia impostato su True se stai sviluppando localmente)? Come ha sottolineato @goliney, il tuo percorso potrebbe essere incasinato. Prova a estrarre i blocchi di miniature e imposta lo src dell'immagine su {{ STATIC_URL }}/images/empty-news.jpg e verifica che funzioni prima di provare a eseguire le miniature.

dimenticato di caricare le miniature: Assicurati di mettere {% load thumbnail %} nel modello prima di qualsiasi riferimento al blocco {% thumbnail %}.

+1

le mie impostazioni di url statico e miniatura sono a posto. Lavorano.Posso eseguire la miniatura di altre immagini dinamic, ma se è statica, non funziona. Anche il mio URL statico è definito correttamente. – aysekucuk

2

Sto lavorando allo stesso problema io stesso. Sembra che se si desidera utilizzare STATIC_URL nei modelli, è necessario assicurarsi che il percorso che si passa al tag thumbnail sia assoluto (trattando il percorso come se fosse esterno.)

Apparentemente i percorsi relativi funzionano solo per immagini all'interno di MEDIA_ROOT, apparentemente progettato per immagini provenienti da modelli.

Come prova, provare a digitare nel percorso http completo.

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

3

Di seguito lavorerà

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

Questo non ha funzionato per me come sorl non avrebbe accettato un URL relativo. Ho adattato questo per accettare un URL assoluto (vedi la mia risposta altrove su questa pagina). – seddonym

7

opzione brutto che ha funzionato per me, passando il percorso che normalmente passare al tag modello static (si noti che assume il protocollo http, quindi potrebbe essere migliorato):

{% 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 %} 

Questo funziona creando il percorso assoluto verso il immagine statica.

0

per coprire un po 'di più l'uglyness ho fatto un filtro personalizzato, utilizzando una costante in settings.py SITE_URL:

settings.py

[...] 
SITE_URL = "google.it" 
[...] 

templatetags/staticthumb.py

from django.conf import settings 

from django import template 

register = template.Library() 

@register.filter() 
def static_url(value): 
    return ''.join(["http://", settings.SITE_URL, settings.STATIC_URL, value]) 

Quindi da utilizzare nel modello:

{% load thumbnail staticthumb %} 

{% with image_path|static_url as path %} 
    {% thumbnail path "720x306" crop="center" as im %} 
     <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> 
    {% endthumbnail %} 
{% endwith %} 
Problemi correlati