ASP-Vorlesungsreihe (14) enthält Dateien
Autor:Eve Cole
Aktualisierungszeit:2009-05-30 19:58:52
Die SSI-Direktive bietet Benutzern die Möglichkeit, den Inhalt einer Datei in eine andere Datei einzufügen, bevor er vom Webserver verarbeitet wird. ASP verwendet für diesen Mechanismus nur die Direktive #include. Um eine Datei in eine ASP-Datei einzufügen, verwenden Sie die folgende Syntax:
<!--#include virtual |. file ="filename"-->
Die Schlüsselwörter „virtual“ und „file“ geben den Pfadtyp an, der zum Einbinden der Datei verwendet wird, und „filename“ ist der Pfad und Name der Datei, die Sie einschließen möchten.
Eingebundene Dateien erfordern keine bestimmte Dateierweiterung; es gehört jedoch zur guten Programmierpraxis, eingebundenen Dateien die Erweiterung .inc zu geben, um sie von anderen Dateitypen zu unterscheiden.
Verwenden des Schlüsselworts „Virtual“ Verwenden Sie das Schlüsselwort „Virtual“, um anzugeben, dass der Pfad in einem virtuellen Verzeichnis beginnt. Wenn beispielsweise eine Datei namens Footer.inc zu einem virtuellen Verzeichnis namens /Myapp gehört, fügt die folgende Zeile den Inhalt von Footer.inc in die Datei ein, die diese Zeile enthält:
<!--#include virtual ="/myapp/footer.inc"-->
Verwenden des Dateischlüsselworts Verwenden Sie das Dateischlüsselwort, um die Verwendung relativer Pfade anzugeben. Relative Pfade beginnen in dem Verzeichnis, das die Include-Datei enthält. Wenn sich Ihre Dateien beispielsweise im Verzeichnis Myapp befinden und die Datei Header1.inc in MyappHeaders liegt, fügt die folgende Zeile Header1.inc in Ihre Datei ein:
<!--#include file ="headers/header1.inc"-->
Beachten Sie, dass der Pfad zur eingebundenen Datei Headers/header1.inc relativ zur einschließenden Datei ist. Wenn sich das Skript mit der #include-Anweisung nicht im Verzeichnis /Myapp befindet, hat die Anweisung keine Auswirkung.
Wenn die Option „Oberes Verzeichnis aktivieren“ im Internet Services Manager ausgewählt ist, können Sie auch das Schlüsselwort „file“ und die Syntax „../“ verwenden, um Dateien im übergeordneten Verzeichnis, also im oberen Verzeichnis, einzuschließen.
Speicherort der enthaltenen Dateien Die enthaltenen Dateien können sich in einem Verzeichnis innerhalb Ihrer Website oder außerhalb Ihrer Website befinden. Normalerweise sollten sich die enthaltenen Dateien im Verzeichnis Ihrer Website befinden. Wenn sich auf Ihrer Website eine eingebundene Datei befindet, werden Änderungen an der eingebundenen Datei angezeigt, wenn der Browser das nächste Mal die eingebundene Datei anfordert. Wenn sich die enthaltene Datei jedoch außerhalb Ihrer Website befindet, wird die Änderung erst wirksam, wenn die ASP-Anwendung oder der Webserver neu gestartet wird. ASP erkennt Änderungen an allen enthaltenen Dateien im Anwendungs-Namespace (im Home-Verzeichnis der Anwendung).
Eingebundene Dateien: Tipps und Warnungen Eine eingebundene Datei kann auch andere Dateien enthalten. Eine ASP-Datei kann dieselbe Datei mehrmals einschließen, wenn #include-Direktiven keine Schleifen verursachen. Wenn beispielsweise die Datei First.asp die Datei Second.inc enthält, darf Second.inc First.asp nicht enthalten. Eine Datei kann sich nicht selbst enthalten. ASP erkennt solche Schleifen- oder Verschachtelungsfehler und generiert bei Erkennung eine Fehlermeldung und stoppt die Verarbeitung der angeforderten ASP-Datei.
ASP schließt die Datei ein, bevor der Skriptbefehl ausgeführt wird. Daher können Sie keine Skriptbefehle verwenden, um die Namen der eingeschlossenen Dateien zu erstellen. Das folgende Skript öffnet beispielsweise Header1.inc nicht, da ASP die #include-Direktive ausführt, bevor es dem Variablennamen einen Dateinamen zuweist.
<!-- Dieses Skript schlägt fehl -->
<% name=(header1 & ".inc") %>
<!--#include file="<%= name %>"-->
Skriptbefehle und -prozeduren müssen vollständig in Skripttrennzeichen <% und %>, HTML-Tags <SCRIPT> und </SCRIPT> oder HTML-Tags <OBJECT> und </OBJECT> eingeschlossen sein. Das heißt, Sie können ein Skripttrennzeichen nicht in einer .asp-Includedatei öffnen und es dann in einer eingebundenen Datei schließen; das Skript oder der Skriptbefehl muss eine vollständige Einheit sein. Das folgende Skript wird beispielsweise nicht ausgeführt:
<!-- Dieses Skript schlägt fehl -->
<%
Für i = 1 bis n
Anweisungen in der Hauptdatei
<!--#include file="header1.inc" -->
Nächste
%>
Das folgende Skript wird normal ausgeführt:
<%
Für i = 1 bis n
Anweisungen in der Hauptdatei
%>
<!--#include file="header1.inc" -->
<% Weiter %>