Verwendung der Client Resource Management API in einem DotNetNuke Skin

DotNetNuke  bietet ja seit der Version 6.x an das die CSS und JavaScript Resourcen (Dateien) zusammengefasst werden. Auf die Vorteile muss hier nicht im Einzelnen eingegangen werden - nur so viel: Es kann die Ladezeit einer Seite deutlich erhöhen.

Bei der Erstellung von einem Skin legt man im Regelfall eine skin.css ein, die dann alle relevanten Formatierungsanweisungen beinhaltet. Wenn man nun externe CSS Dateien noch mit in das Skin einbinden möchte (oder seine eigene Struktur über mehrere Dateien verteilt) wird vielfach der CSS Befehl @Import genutzt. In diesem Fall werden die importierten Dateien nicht berücksichtigt bzw. mit in eine große Datei gepackt. 

Damit weitere CSS Dateien (oder auch JS Dateien) berücksichtigt werden, muss man die DotNetNuke SkinObjects DnnCssInclude bzw. DnnJsInclude nutzen. Vor der Nutzung muss man noch die Komponente registrieren in der Skin-Datei, das passiert über den üblichen Weg:

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>

Ein konkretes Beispiel für die Einbindung könnte dann so aussehen:

<dnn:DnnCssInclude runat="server" FilePath="menu/menu.css" PathNameAlias="SkinPath" />

Der optionale Parameter PathNameAlias kann mit den Werte SkinPath oder SharedScripts gefüllt werden. SkinPath ist dabei der aktuelle Pfad zum verwendeten Skin und somit lassen sich alle Dateien unterhalb vom Skinverzeichnis einbinden und bei SharedScripts wird das Verzeichnis ~/Resources/Shared/Scripts/ als Basisverzeichnis genutzt. 

Zusätzlich kann man noch über die Option Priority die Reihenfolge der Dateien bestimmen.

Weitere Informationen findet man dazu auch im offiziellen DotNetNuke Wiki.

Kommentar schreiben