Yeoman / Grunt usemin Unterordner

8

Ich habe eine schreckliche Zeit mit yeoman / grunt und usemin - versuche, Ausgabedateien zur gleichen Zeit zu bekommen, wie ich den richtigen Pfad innerhalb des html schreibe, wenn ich Unterordner habe.

Meine Grundeinstellung ist, dass es Seiten auf oberster Ebene gibt (zB index.html) und auch sprachspezifische Seiten in Unterordnern (en, de, fr etc.) - jeder von diesen hat gemeinsame js-Dateien (wie jquery) ) aber auch sprachspezifische js-dateien (das selbe für css, aber einfach gehalten ...)

%Vor%

Also - im Grunde gibt es die oberste Ebene index.html, die jquery usw. hat. - Also könnte das Skript-Tag dort aussehen wie

%Vor%

oder mit rev

%Vor%

Aber in en / index.html sollte das Skript-Tag aussehen (für gemeinsame - wie jQuery)

%Vor%

oder mit rev.

%Vor%

Es ist die ../ das ist das Problem.

Ich kann die js-Datei erstellen, aber nicht rev'd, oder rev'd aber leer, oder bauen und rev'd aber an der falschen Stelle (am häufigsten außerhalb / über den App- und dist-Ordnern!)

In der en / index.html - ich kann einfach nicht herausfinden, wie die build: js aussehen soll zB.

%Vor%

Ich habe jede Kombination ausprobiert, die ich mir vorstellen kann - es scheint zu laufen, wenn ich ein ../ im build: js-Pfad schreibe, dann ist die eigentliche Datei 1 Ebene vom App-Ordner entfernt, aber schreibt der Pfad im HTML korrekt. Wenn ich das ../ out lasse, legt es die Datei an den richtigen Platz, aber das html hat das ../ in keiner (was es eindeutig benötigt) - also wie sage ich, dass ich die Ausgabedatei möchte referenziere eine Ebene höher (aus en / Ordner), aber grunze nicht lege sie eine Ebene höher (außerhalb des Dist-Ordners!)

Danke!

    
Calv J 20.08.2013, 22:33
quelle

1 Antwort

4

Ich stieß auf ein sehr ähnliches Problem. Ich hosting meine Grunt-generierte Seite auf S3 mit ihrer statischen Website-Option. Lokal funktionierte der von usemin generierte Inhalt perfekt (mit absoluten Pfaden), aber da ich die Site in einem Bucket auf S3 hatte, brauchte sie den vollständigen absoluten Pfad (mit Domain) zu den Asset-Dateien, um wirklich zu funktionieren.

Geben Sie grunt-replace ein. Die Verwendung eines Such- / Ersatzmusters war die einzige Möglichkeit, dies zu erreichen. Für mich musste ich einfach "/ assets /" durch " Ссылка " ersetzen. Hier ist meine grunt Aufgabe Definition:

%Vor%

Ich habe das zu meiner deploy -Aufgabe hinzugefügt, so dass es nur noch läuft, bevor ich auf S3 stoße.

Für Ihre Fälle könnten Sie usemin wahrscheinlich tun lassen, dann nur Dateien in Unterverzeichnissen ersetzen (wie en oder es ) und die Asset-Pfade so ändern, dass ../ vor ihnen steht.

    
deadwards 03.11.2013 18:28
quelle