White Space / Coldfusion
Was wäre der richtige Weg, um beenden Sie den weißen Raum, der ColdFusion-Ausgänge?
Ich weiß, es ist cfcontent
und cfsetting enableCFoutputOnly
. Was ist die richtige Art, das zu tun?
- Was ist das problem mit dem zu lösen versucht? Der Zusätzliche Leerraum verursacht keinen wirklichen Schaden an und für sich, zumindest nicht dass ich wüsste.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neben
<cfsilent>
,<cfsetting enablecfoutputonly="yes">
und<cfprocessingdirective suppressWhiteSpace = "true">
ist<cfcontent reset="true" />
. Sie können löschen von Leerzeichen am Anfang des Dokuments mit ihm.HTML5-Dokument würde dann so anfangen:
XML-Dokument:
Diese Weise werden Sie nicht Holen Sie sich die "Content is not allowed in prolog"-Fehler für XML-Dokumente.
Wenn Sie unerwünschte Leerzeichen aus einer Funktion verwenden Sie das
output
-Attribut zu unterdrücken Ausgang und zurück zu Ihrem Ergebnis als string, z.B.:Können Sie die ColdFusion-Ausgabe von immer Zugriff auf den ColdFusion-Outpout-Puffer. James Brown vor kurzem die demo würde diese bei unserem user group meeting (Central Florida Web-Entwickler-User-Group).
Ein großartiger Ort, um dies zu tun wäre in der Anwendung.cfc onRequestEnd(). Ihr Ergebnis könnte eine einzige Zeile HTML, die dann an den browser gesendet. Arbeiten Sie mit Ihrem web-server GZip und Sie werden geschnitten Bandbreite sehr viel.
In Bezug auf tags, es ist cfsilent
In der administrator gibt es eine Einstellung "Enable whitespace management'
Weiter Lesen auf cfsilent und cfcontent reset.
edit
nicht auf alte Kommentare.Wenn weder
<cfsilent>
noch<cfsetting enablecfoutputonly="yes">
können Sie zufrieden, dann sind Sie wahrscheinlich over-engineering dieses Problem.Wenn du fragst einzig und allein aus ästhetischen Gründen, meine Empfehlung: Ignorieren Sie die Leerzeichen, es macht keinen Schaden.
Habe ich herausgefunden, dass Sie sogar mit jeder nur möglichen Weise zu beseitigen, Leerzeichen, der code kann immer noch einige unerwünschte Leerzeichen oder Zeilenumbrüche. Wenn Sie noch erfährt, das Sie möglicherweise benötigen, zu opfern gut formatierter code für die gewünschte Ausgabe.
Z. B. anstelle von:
Müssen Sie möglicherweise code:
Dies ist nicht CF hinzufügen von Leerzeichen, aber Sie hinzufügen Leerräume beim formatieren der CF.
HTH
Alternativ können Sie gewährleisten, dass Ihre ganze Seite ist gespeichert in einer Variablen zu, und alle diese Verarbeitung erfolgt innerhalb cfsilent-tags. z.B.
Schließlich können Sie führen Sie keine weiteren Verarbeitung, nachdem Sie Sie erstellt haben, an den pagecontent aber bevor Sie Ausgabe, die es z.B. einem regulären Ausdruck entfernen Sie zusätzliche Leerzeichen oder code Aufräumen.
Hier ist ein Tipp, wenn Sie Verwendung von FCKW.
Wenn Sie nicht erwarten, deine Methode erzeugen Sie eine Ausgabe, verwenden
output="false"
im<cffunction>
und<cfcomponent>
(nicht notwendig, nur wenn Sie CF9-Skript-Stil). Dies beseitigt eine Menge von unerwünschten Leerzeichen.Wenn du Zugriff auf den server haben und implementieren wollen, die es auf jeder Seite, Anfrage suchen und installieren trimflt.jar. Es ist eine Java-servlet-filter, der entfernt alle Leerzeichen und Zeilenumbrüche vor dem senden Sie es aus. Einfach die jar in das /WEB-INF/lib-dir von CF und Bearbeiten Sie die web.xml Datei-filter hinzufügen. Seine konfigurierbar als auch um Kommentare zu entfernen, ausschließen von Dateien oder Erweiterungen, und erhalten bestimmten Zeichenfolgen. Läuft es für ein paar Jahre ohne ein problem. Ein Satz es und vergessen-it-Lösung.