Verwalten und veröffentlichen Sie CSS und JS von Tridion-Sites 9.5 und verwenden Sie sie in der Java-Webanwendung dxa 2.2

Dec 16 2020

Ich bin auf ein Szenario gestoßen, in dem CSS und JS nicht über html-build.zip verarbeitet werden.

Stattdessen müssen wir CSS und JS auf cm speichern und diese publikationsweise veröffentlichen.

Außerdem muss ich diese CSS-Datei und JS-Dateien auf JSPs in Webanwendungen verwenden.

Könnte mir bitte jemand vorschlagen, wie dies erreicht werden kann.

Antworten

3 paceaux Dec 16 2020 at 18:57

Ich habe Tridion in der Vergangenheit viele Male verwendet, um CSS und JavaScript zu veröffentlichen.

Bitte beachten Sie, dass jede Implementierung anders ist . Was ich getan habe, funktioniert möglicherweise nicht mit dem, was Sie getan haben.

Codekomponente + Seitenvorlage

Der gebräuchlichste Ansatz ist eine "Codekomponente", bei der es sich um ein Tridion-Schema mit einem einzelnen Klartextfeld handelt, das auf 20 bis 30 Zeilen festgelegt ist. CSS und JavaScript werden buchstäblich kopiert und in das Feld eingefügt. Eine in Razor Mediator for Tridion (oder DWT) geschriebene Komponentenvorlage rendert das einzelne Feld und die Ausgabe ist eine CSS- oder JS-Datei.

In einer Implementierung haben wir unseren Codeschemata Metadaten hinzugefügt, damit wir die Verschleierung und Minimierung umschalten können. Dazu mussten wir .net-TBBs hinzufügen, die diese Aufgaben natürlich ausführen konnten.

Wir würden CSS- und JS-Seitenvorlagen erstellen, deren einzige Aufgabe darin bestand, das eine Feld aus unseren Codekomponenten zu rendern . Im Grunde tat dies die Aufgabe der verketten CSS oder JS in einem einzigen CSS- oder JS - Datei.

Ich habe diesen Ansatz in Tridion R5.1 - 2011 verwendet. Es ist ein alter Ansatz, den ich in modernen Implementierungen nicht gesehen habe. Es hat funktioniert, als wir JSP- oder HTML-Seiten von Tridion auf einem Dateiserver veröffentlicht haben.

Nachteile:

  • Funktioniert nicht gut, wenn Sie keine statischen Dateien veröffentlichen
  • Risiko von Transkriptionsfehlern beim Kopieren und Einfügen (ja, wirklich)
  • seltsame Ergebnisse, wenn CSS / JS nicht gut geschrieben ist; Mit dieser Seitenvorlage können Sie die Reihenfolge der Codekomponenten festlegen. Wenn der Code schlecht geschrieben ist, können einige Stile oder JS-Blöcke andere überschreiben oder nicht funktionieren, wenn eine Sache von der anderen abhängt

Vorteile:

  • Einfach zu implementieren
  • "Code als Inhalt". Einige Organisationen haben strenge Änderungskontrollprozesse und die Behandlung von Code als Inhalt bedeutet, dass sie diese Prozesse umgehen können.

CSS / JS als Binärdateien

Dies ist nur ein Dreh gegenüber dem vorherigen Beispiel, aber die Idee hier ist, dass Sie Tridion .css- und .js-MIME-Typen hinzufügen und sie als Binärdateien hochladen lassen. Dies erspart den Schmerz von Transkriptionsfehlern beim Kopieren und Einfügen.

Das Veröffentlichen wird dann vereinfacht, wenn Sie Assets direkt aus Tridion veröffentlichen.

Nachteile

  • Immer noch ein "Code als Inhalt" -Szenario, obwohl das Risiko von Transkriptionsfehlern vereinfacht wird.
  • Das Umbenennen einer Binärdatei ist problematisch. Es könnte dazu führen, dass der Server die CSS-Datei manuell löscht (oder zu meiner Zeit). Dies kann auch zu einer fehlerhaften Site führen.

Upsides

  • Einfach zu implementieren
  • Es ist weniger wahrscheinlich, dass Copy-Pasta-Fehler auftreten als bei der anderen Option

Ich habe beide Szenarien gemacht. Ich hatte auch einen Fall, in dem wir eine spezielle TBB erstellt haben, um einen CSS-Präprozessor in Tridion auszuführen , damit wir SASS / SCSS im CMS haben können.

Diese Ansätze haben starke Nachteile. Am wichtigsten ist, dass Sie sicherstellen möchten, dass Sie bestimmte Seitenvorlagen so einstellen können, dass sie als statische Dateien veröffentlicht werden, und nicht zum Broker gehen (um als tatsächlicher Inhalt behandelt zu werden).

Beim Ansatz "CSS / JS als Binärdateien" werden sie wie Bilder, Videos und PDFs behandelt. Das willst du vielleicht nicht.

NeeteshNarvaria Jan 11 2021 at 11:54

Ich manipulierte die Grunzanweisung für die Zip-Komponente der Build-Datei und fügte alle CSS- und JS- und statischen Bilder in die HTML-Design-Zip-Komponente ein. Außerdem erstellte ich eine Strukturgruppe, wie in der Vorlage "HTML-Design veröffentlichen" gefordert, damit ich CSS und JS veröffentlichen kann als dxa-Binärinhalt, ohne eine Vorlage zu berühren oder auf der Webanwendungsseite zu ändern.