Get-MiniWebserverResource #
ÜBERSICHT #
Liest eine statische Webserver-Ressource (HTML, CSS, JS, Bild, Icon) aus einem optionalen Override-Ordner oder dem Default-Ordner des Moduls.
SYNTAX #
Get-MiniWebserverResource [-ResourceName] <string> [[-SourceFolder] <string>] [<CommonParameters>]
BESCHREIBUNG #
Get-MiniWebserverResource liefert den Inhalt einer Datei zurück, die für den Mini-Webserver ausgeliefert werden soll. Die Suche erfolgt in zwei Stufen:
- SourceFolder (optional, vom Aufrufer) - dort wird zuerst gesucht, damit individuelle Anwendungen einzelne Dateien überlagern können.
- Default-Folder im Modul (
<ModuleBase>\web\) - dort liegen die mit dem Modul ausgelieferten Standard-Ressourcen (style.css, partner.html, email.html, script_*.js, favicon.ico …).
Findet die Funktion die Datei in keinem der beiden Ordner, gibt sie $null zurück.
Textdateien (.html, .css, .js, .json, .txt, .svg) werden als UTF-8 String gelesen, Binärdateien (.ico, .png, .jpg, .jpeg, .gif, .woff, .woff2) als Byte-Array.
PARAMETER #
-ResourceName #
Type: string
Name der gewünschten Datei einschließlich Endung, z.B. ‘partner.html’ oder ‘favicon.ico’. Reine Datei-Namen, keine Pfade.
-SourceFolder #
Type: string
Optional. Pfad eines Override-Ordners, in dem zuerst nach der Datei gesucht wird. Wird der Parameter nicht gesetzt, kommt direkt der Modul-Default-Ordner <ModuleBase>\web\ zum Zug.
AUSGABEN #
string oder byte[].
Inhalt der Datei. Bei Textdateien als UTF-8 dekodierter String, bei Binärdateien als Byte-Array. $null, wenn die Datei nirgends gefunden wurde.
BEISPIELE #
# Holt die mit dem Modul ausgelieferte Default-Datei.
Get-MiniWebserverResource -ResourceName 'partner.html'
# Eigene partner.html überlagert die Modul-Default; alle anderen Dateien
# kommen weiterhin aus dem Modul.
Get-MiniWebserverResource -ResourceName 'partner.html' -SourceFolder 'C:\MeinWebRoot'
# Binärdatei: liefert ein Byte-Array zurück.
[byte[]] $ico = Get-MiniWebserverResource -ResourceName 'favicon.ico'
HINWEISE #
- Default-Ordner ist
<ModuleBase>\web\und wird beim Build ausweb\(Repo-Root, analog zu host, schema, xslt) ins Modul kopiert. - Es gibt bewusst keinen Cache mehr - Datei-IO auf NTFS ist günstig genug, und der frühere Here-String-Cache (
Set-MiniWebserverResources) hat AV-Scanner durch große Base64-Blöcke gestört.