Dla jasności, istnieje kilka metod w zależności od sytuacji. Przedstawię najczęstsze, jakie znam.
Przede wszystkim należy dołączyć zewnętrzny skrypt lub arkusz stylów do określonej części lub motywu. Standardowa składnia w szablonie Razor to:
@Style.Include("YourPartEdit")
@Script.Require("jQuery")
@Script.Include("YourPartEdit")
include pliki będą wyglądać dla danego zasobu w odpowiedniej Style
lub Scripts
folderu: dla @Script.Include("YourPartEdit")
, będzie to wyglądać w folderze skrypty dla YourPartEdit.js
.
Być może zauważyłeś, że dzięki Script.Require
możesz zarejestrować bibliotekę w Orchard (w tym przypadku zarejestrowana to jQuery
) i spowodować, że moduł wymaga tego konkretnego skryptu.
W tym celu należy utworzyć własną implementację interfejsu IResourceManifestProvider
i zaimplementować metodę BuildManifests(ResourceManifestBuilder builder)
i utworzyć nazwany zasób. Możesz użyć .AtFoot()
lub .AtHead()
, aby nawet celować w to miejsce.
Teraz powiedz, że chcesz odwołać się do konkretnego obrazu, a chcesz używać Razor, aby zawsze wskazywał poprawny URL obrazu. Przede wszystkim polecam umieszczenie obrazu w folderze Content
do tematu (zakładając, że jest to związane z tematem obrazu), i zrobisz coś wzdłuż tych linii:
<img [email protected](Html.ThemePath(WorkContext.CurrentTheme, "/Content/your-logo.png")) />
teraz powiedzieć to na własną Layout.cshtml
stronę - z powodzeniem wyświetlisz obraz w dowolnym miejscu na stronie.
Te szczególne techniki powinny uwzględniać wiele sytuacji.
Jak rozumiem byłoby użyć tylko builder.Add.DefineResource jeśli chce udostępnić zasoby do innych modułów. Czy odwołujesz się do treści w swoim motywie, czy próbujesz udostępnić treść innym tematom/modułom? – mdm
Szukam tylko odniesienia do bieżącego tematu/modułu. – Carl