Django-Weasyprint Bildproblem

9

Wie auf der Dokumentseite angegeben, habe ich ein img-Tag in meiner HTML-Datei wie folgt definiert:

%Vor%

Diese URL existiert auf dem Server und ich habe sogar eine andere Ansicht mit einer http-Antwort gemacht und das Bild wird gut angezeigt . Hier ist der Code für beide Ansichten:

Die pdf-weasyprint-Ansicht:

%Vor%

Die HTML-Ansicht:

%Vor%

Ich dachte, der Standard-URL-Finder sollte das Bild finden und rendern (es ist ein PNG - also sollte kein Format-Problem involviert sein) Irgendwelche Ideen? Jede Hilfe würde geschätzt werden!

    
Alvaro 01.10.2013, 16:20
quelle

1 Antwort

27

Was genau ist das Problem? Hast du etwas in den Logs? (Möglicherweise müssen Sie die Protokollierung konfigurieren , wenn Ihr Server stderr nicht protokolliert.) Wie sieht das generierte HTML aus?

Ich würde wirklich Antworten auf die oben genannten benötigen, um zu bestätigen, aber meine Vermutung ist, dass die URL des Bildes relativ ist, aber mit HTML(string=...) WeasyPrint hat keine Ahnung von was ist die Basis-URL. Probieren Sie so etwas aus. (Ich bin mir der Django-Details nicht sicher.)

%Vor%

Dies führt zu einer echten HTTP-Anfrage in Ihrer App, die sich möglicherweise auf einem Single-Thread-Server festsetzt. (Ich denke, der Entwicklungsserver verwendet standardmäßig einen einzelnen Thread.)

Um dies und die Kosten zu vermeiden, durch das Netzwerk zu gehen, sollten Sie sich einen eigenen "URL-Retter" anschauen ". Es könnte irgendwo von spezialisiert zu genau diesem einen Bild sein, zu einem vollständigen Django-Äquivalent von Flask-WeasyPrint .

    
Simon Sapin 04.10.2013, 05:54
quelle