När vi utvecklar en modul i Orchard kan vi lägga till några stilar eller skript som är specifika för denna modul. Ur ett webbsidesoptimeringsperspektiv behöver vi ofta lägga till stilar i sidans huvud (<head>vid etiketten), medan skript vill läggas till längst ner på sidan (nära</body> etiketten). Men vyfilen som motsvarar modulen vi utvecklat är egentligen en PartialView, och om vi lägger till stil- eller skriptreferenstaggar direkt i vyn kommer vi inte att uppnå önskad effekt. Så hur hanteras denna funktion i Orchard?
WebViewPage-klassen i MVC-vymotorn har skrivits om i Orchard-ramverket, och attributen scrip{filter}t och Style har lagts till för att introducera stilar och skript. Detta gör att vi kan använda dessa två egenskaper direkt i vyn för att anropa motsvarande metod.
Använd interna stilar och skript i dina vyer
Om vi behöver skriva en stildefinition eller skriptdefinition direkt på sidan. Sedan kan vi skriva stilar och manus i specifika områden definierade av Orchard-temat. Till exempel kan du skriva ett skript till sidans nedersta område med följande metod: @using (scrip{filter}t.Foot())
{ <scrip{filter}t type="text/javascrip{filter}t"> funktion JsSub() { Manus kan skrivas här } </scrip{filter}t>
} I Orchard har attributet Style ingen huvudmetod, kanske vill Orchard inte att vi ska använda interna stilar. Så låt oss lägga stilen i en extern stilfil att referera till. Använd externa stilar och skript i din vy
Om vi vill anropa stilar och skript i moduler. Sedan kan jag använda Include-metoden för attributen scrip{filter}t och Style, såsom: @{ Stil.Inkludera ("xxx.css"); scrip{filter}t.Include("xxx.js");
} På detta sätt, när en sida renderas, kommer Orchard automatiskt att slå upp motsvarande stilfil i Styles-katalogen i denna modul och generera en stilreferenstagg att skriva i sidhuvudet. Den letar också efter motsvarande skriptfil i katalogen scrip{filter}ts och genererar en skriptreferenstagg skriven längst ner på sidan. Använd resursfiler
Utöver de två metoder som beskrivits ovan tillhandahåller Orchard även en resursfilmanifestfunktion. Jag behöver bara skapa en ResourceManifest.cs-fil i modulens rotkatalog och implementera gränssnittet IResourceManifestProvider. I denna resursmanifestfil kan vi ha rikare funktioner för referensstilar och skriptfiler. Till exempel kan definiering av en referens till en skriptfil användas med: public void BuildManifests(ResourceManifestBuilder builder) { byggare. Add(). Definescrip{filter}t("jQuery"). SetUrl("jquery-1.5.2.min.js")
} På så sätt kan du använda följande när du refererar i en vy: @{ scrip{filter}t.Require("jQuery");
} Dessutom kan andra moduler efter definiering också använda denna resurs, och när det finns flera vyfiler som refererar till denna resurs på en sida, kommer det inte att finnas några dubblettreferenser, och Orchard kommer endast att generera en tagg som refererar till detta skript. Samma gäller för att definiera stilar: byggare. Add(). DefineStyle("jQueryUI_Orchard"). SetUrl("jquery-ui-1.8.11.custom.css"); När man använder: @{ Stil. Kräva ("jQueryUI_Orchard");
} Resursfillistan har också en beroendeinställningsfunktion. När en skriptresurs behöver förlita sig på andra skriptresurser kan följande definition användas: byggare. Add(). Definescrip{filter}t("jQueryUI_Core"). SetUrl("jquery.ui.core.min.js"). SetDependencies("jQuery"); På så sätt använder vi bara jQueryUI_Core skript på view, och det importerar automatiskt det jquery-skript det är beroende av också. Om du förlitar dig på flera skript samtidigt som skript kan du använda kommatecken för att separera flera beroende resurser, såsom: byggare. Add(). Definescrip{filter}t("jQueryUI_Draggable"). SetUrl("jquery.ui.draggable.min.js")SetDependencies("jQueryUI_Core", "jQueryUI_Widget", "jQueryUI_Mouse"); Orchard stöder dock ännu inte funktionen för skriptresurser som förlitar sig på stilresurser, vilket är lite synd, faktiskt behöver vissa js användas samtidigt som stilfiler, såsom jQueryUI-pluginet. Dessutom kan resursinventariefilen även ställa in olika skriptfiler för debug-läge och release-läge, och kan även definiera motsvarande resursversion, såsom: byggare. Add(). Definescrip{filter}t("jQuery"). SetUrl("jquery-1.5.2.min.js", "jquery-1.5.2.js"). SetVersion("1.5.2");
Orchard.jQuery-modulen som följer med Orchard är en sådan modul som definierar jQueryUI-pluginet. Om vi behöver använda detta plugin kan vi titta på js-pluginet som definieras i denna manifestfil och referera till det i vår egen modul. Det är dock värt att notera att om vi behöver referera till innehållet i Orchard.jQuery-modulen, måste vi sätta beroendemodulen Orchard.jQuery i modulens manifestfil, så att när vår modul aktiveras kommer Orchard.jQuery-modulen att aktiveras synkront för att säkerställa att de resurser vi refererar till kan anropas normalt.
jquery refereras med hjälp av scrip{filter}t.Require("jQuery"). AtHead();
|