Ich möchte einige statische Dateien (insbesondere * .js) mit Django-Template-Variablen rendern. Ich glaube, das ist ein häufiger Anwendungsfall, besonders wenn man irgendwas AJAX-y macht; Ich möchte AJAX-URLs in meinen .js-Dateien nicht mehr fest codieren, als ich sie in meinen .html-Dateien fest codieren möchte. Aber natürlich möchte ich nicht, dass diese statischen Dateien bei jeder Client-Anfrage durch die Template-Engine laufen müssen, weil das langsam ist. Ich beziehe mich auf Dinge wie URLs (die sich nach dem Kompilieren / Deployen nicht ändern) oder statische (nicht-db) Modellattribute. (Ich nehme an, es gibt Anwendungsfälle, in denen diese Dinge zur Laufzeit geändert werden könnten - das ist schließlich Python - aber ich denke, dass sie ungewöhnlich sind). Für einige mögliche Template-Variablen (z. B. Modellfelder) muss die Datei natürlich zum Zeitpunkt der Client-Anfrage gerendert werden, aber das ist nicht, worüber ich spreche.
Wäre es also nicht sinnvoll, einige meiner statischen Dateien über die Template-Engine für eine Teilmenge möglicher Template-Variablen zu rendern, vielleicht gleichzeitig mit collectstatic
?
Soweit ich das beurteilen kann, ist dies zur Zeit nicht der Fall. Um klar zu sein, suche ich nach einer Lösung für statische Dateien über die Template-Engine zum Zeitpunkt der Kompilierung / Bereitstellung zu rendern, so dass es sich bei "Client-Anfrage-Zeit" tatsächlich um alte statische Dateien handelt >.
Ein solcher Ansatz würde diese Hacks vermeiden:
Haftungsausschluss:
- Ja, ich weiß, dass es Template-Engines für Javascript gibt (Schnurrbart, Lenker, Prototyp, usw.). Warum sollte ich dem Stack eine weitere Template-Engine hinzufügen, wenn Django bereits eine hat? Plus die Syntax kollidiert! Das scheint albern.
-
Das sieht so aus, als wäre es ein Kinderspiel, aber es ist kompliziert und nicht vollständig implementiert. li>
Also:
- Gibt es da draußen eine Lösung, die mir fehlt?
- Wenn nicht, gibt es eine Möglichkeit, in
collectstatic
einzuhaken (wie bei einem pre-collectstatic-Hook), die es erlauben würde, bestimmte statische Dateien über die Template-Engine zu rendern, bevor sie "gesammelt" werden?
BEARBEITEN :
Noch keine Antworten ... ist das eine wirklich dumme Frage, und mir fehlt etwas Offensichtliches? Wenn ja ... lass es mich wissen ...