Es fällt mir wirklich schwer, mich mit dem Django-Kompressor zu beschäftigen.
Folgendes möchte ich erreichen:
Ich möchte meine LESS CSS- und Coffeescript-Dateien in ein Asset-Verzeichnis trennen
z.B.
%Vor%Belassen Sie statische Elemente wie Bilder in meinem statischen Verzeichnis
z.B.
%Vor%Dazu habe ich den Asset-Pfad zu meiner STATICFILES_DIRS -Variable hinzugefügt, damit django-compressor die Dateien finden kann (was wie erwartet funktioniert). Ist das der richtige Ansatz? Ich habe versucht, einen unabhängigen Ladepfad zu finden, der dem Django-Kompressor gewidmet ist, hatte aber kein Glück, da ich nicht vorhabe, dass diese Assets als Statik dienen.
Für die Bereitstellung in der Produktion würde ich dann gerne die kompilierte CSS & amp; JS-Dateien zusammen mit anderen Medien in meiner App / statischen Verzeichnis (z. B. Bilder und so weiter) in einem App / Static-Prod-Verzeichnis gesammelt werden. Dies funktioniert jedoch nicht so gut, da die Assets auch gesammelt werden, wenn der Befehl collectstatic verwendet wird.
z.B.
%Vor% Mit dem ./manage.py compress
-Befehl wird in diesem Beispiel nur die Tara meiner kompilierten Dateien verwendet, nicht photo.jpg oder hello.txt.
Der einzige mögliche Weg, den ich gefunden habe, ist die Verwendung des Flags --ignore mit Collectstatic
z.B.
%Vor%Ich habe mich auch mit den Konfigurationsvariablen COMPRESS_ROOT und COMPRESS_URL herumgeschlagen, aber diese verursachen nur weitere Probleme. Durch die Änderung von COMPRESS_ROOT wird das Collectstatic-Problem gelöst, aber jetzt, wenn der Befehl compress verwendet wird, landen die generierten Dateien an einem anderen Ort als die statischen Dateien.
Diese Lösungen scheinen kaum elegant. Gibt es einen besseren Weg, dies zu tun? Ich fühle mich, als würde ich etwas vermissen.
Vielen Dank im Voraus für jede Hilfe:)
Ich dachte, ich würde die beste Lösung anbieten, die ich bisher gefunden habe, aber bitte zögern Sie nicht, bessere Alternativen vorzuschlagen.
Das größte Problem, das meine Anforderung verhindert, ist die Tatsache, dass der Django-Kompressor den gleichen Pfad für seinen Finder und seine Ausgabe verwendet. Die beste Lösung, die ich gefunden habe, ist wie folgt.
Wir erstellen zuerst einen benutzerdefinierten Finder basierend auf einer neuen Einstellung, die ich COMPRESS_SOURCE_ROOT
nenne %Vor%Fügen Sie diesen Finder einfach Ihrer STATICFILES_FINDERS -Einstellung zusätzlich zum üblichen 'compressor.finders.CompressorFinder'
hinzuz.B.
%Vor%Und nun richten Sie eine neue Einstellung namens COMPRESS_SOURCE_ROOT
einz.B.
%Vor%Ich habe auch meinen STATIC_ROOT zu
gesetzt %Vor%Ich habe meine LESS-Quellcode-Kompilierung speziell getestet
%Vor%Mit Vorlagen-Tags
%Vor%Dies wird erfolgreich aus dem Anlagenverzeichnis gelesen und aktualisiert, wenn ich die Dateien ändere.
Die Ausgabe wird im Verzeichnis static-prod abgelegt:
%Vor%Hier sehen Sie, wie mein statisches Verzeichnis aussieht
%Vor%Also hier gehen wir
%Vor%Ich habe dann den Webserver wie folgt ausgeführt und bestätigt, dass die Seite betriebsbereit war
%Vor%Hoffe, das hilft jemandem da draußen:)
Tags und Links django django-compressor