(Ich fand diese Frage beim googlen für eine Lösung, also teile ich einfach die Lösung ich fand sie So, dass andere wie ich es finden können.)
Ich habe gerade ein Grunt-Plugin namens grunt-bridge entdeckt, das statische Dateien in einer HTML-Vorlage mit dem static
-Tag umbrechen kann. Die Dokumentation ist nicht großartig, aber ich habe mir gedacht, wie ich sie für mein Projekt einsetzen kann.
Wenn Sie Skripte wie folgt aus:
<!-- build:js({.tmp,app}) /scripts/scripts.js -->
<script src="scripts/app.js"></script>
<script src="scripts/util/util.js"></script>
...
Und die letzte Ausgabe, die es zur Ausgabe etwas wie folgt aus:
<script src="{% static 'adjangoappname/scripts/94223d51.scripts.js' %}"></script>
Installieren gruntbridge mit npm install grunt-bridge --save-dev
und fügen Sie eine Config wie dies in der Grunzen .initConfig der Gruntfile.js:
bridge: {
distBaseHtml: {
options: {
pattern: '{% static \'adjangoappname{path}\' %}',
html: '<%= yeoman.minifiedDir %>/index.html', dest: '<%= yeoman.templateDir %>/index.html'
}
},
distIndexHtml: {
options: {
pattern: '{% static \'adjangoappname{path}\' %}',
html: '<%= yeoman.minifiedDir %>/index.html', dest: '<%= yeoman.templateDir %>/index.html'
}
},
// ... etc for each html file you want to modify
},
Dabei ist <%= yeoman.minifiedDir %>
das Ausgabeverzeichnis der endgültigen verkleinerten HTML-Dateien und <%= yeoman.minifiedDir %>
das Zielvorlagenverzeichnis. Ersetzen Sie adjangoappname
durch den Namen Ihrer Django-App oder eines anderen Verzeichnispräfixes, das Sie haben möchten.
Dann Grunzen-Brücke zuletzt in der registerTask Liste wie folgt hinzu:
grunt.registerTask('build', [
//...
'htmlmin',
'bridge'
]);
(ich denke, es ist möglich, die Konfiguration kompakter zu machen, aber dies ist die erste Methode, die ich arbeitete entdeckt)
Haben Sie die Seite mit 'grunt build' erstellt, sollte dem Client kein Usermin Block gedient sein, dies ist nur für grunt und hat nichts mit dem Backend (afaik) zu tun. – Patrick
Ich versuche, Djangos Reverse-URL-Lookup für die statische URL zu nutzen, also verwende ich Angulars index.html von einer Django-Route, die es mir erlaubt, Django-Template-Tags in index.html zu verwenden. Ich habe das aufgegeben und werde jetzt auf index.html von der statischen URL aus zugreifen, anstatt auf eine richtige Django-Route. Ich werde nur in den sauren Apfel beißen und wenn sich meine statische Datei-URL jemals ändert, werde ich Index.html von Hand aktualisieren. – davemckenna01
@ davemckenna01 hast du seit August etwas Neues zu diesem Thema gefunden, als du ursprünglich gefragt hast? Ich benutze gerade Grunt/Yeoman mit Angular und die Integration des Workflows mit Django verlangsamt mich ziemlich. – kevins