2013-07-07 16 views
10

ich auf einer Seite die folgende Störung erhalten wir laden:CF10 nicht hinzufügen Text zu HTML Kopf

coldfusion.runtime.CfErrorWrapper 
Unable to add text to HTML HEAD tag. 
[empty string] 

caused by 

Template 

Unable to add text to HTML HEAD tag. 
ColdFusion was unable to add the text you specified to the output stream. This is probably because you have already used a CFFLUSH tag in your template or buffered output is turned off. 

Ich habe einen Sweep aller Dateien durchgeführt, die in unserer Anwendung enthalten sind und nicht finden kann, alles, was CFFlush verwendet.

Ausgabe ist auf allen cfcs und Komponenten auf "Nein" gesetzt. Ich habe auch versucht, cfsetting showdebugoutput = no in einer Datei hinzuzufügen. Das hat nicht geholfen.

Ich habe Request Debugging in cfadmin eingeschaltet und das hat nicht geholfen.

Der HTML-Kopf funktioniert gut in anderen Teilen unserer App, es scheint nur auf dieser einen Seite zu sein.

Das einzige, was wirklich an dieser Seite anders ist, ist, dass es eine besonders lange Seite ist.

Antwort

13

Wenn es eine besonders lange Seite ist, kann CF den Puffer selbst leeren. Wenn Sie den CFAdmin einchecken, gibt es auf der Einstellungsseite eine Einstellung für Maximale Ausgangspuffergröße. Ich glaube, der Standardwert ist 1024 KB. Wenn Ihre Seite mehr als 1 MB Inhalt enthält, kann CF den Puffer leeren, bevor Ihr <cfhtmlhead />-Tag ausgeführt wird. Versuchen Sie, die Puffergröße zu erhöhen oder die Position des Tags <cfhtmlhead /> zu ändern, um festzustellen, ob das Problem dadurch behoben wird.

1

Ich habe in letzter Zeit das gleiche Problem, aber das Verhalten war nicht vorhersehbar. Ich glaube, dass die Antwort von Dan Short richtig ist. Ich habe einige Testseiten erstellt, um zu sehen, ob ich das Problem reproduzieren könnte. Jedes Mal, wenn TestTemplate.cfm enthalten ist, schreibt CFHTMLHEAD eine einfache JavaScript-Warnung an das head-Tag. Sobald der Puffer erreicht ist und die Seite automatisch geleert wird, führt jede nachfolgende Verwendung des CFHTMLHEAD-Tags zu einem Fehler, insbesondere dem Fehler im ursprünglichen Post. Wie Dan angibt, können Sie dieses Problem umgehen, indem Sie die maximale Ausgabepuffergröße ändern.

Datei: index.cfm

<html> 
<head><title>Test Page</title></head> 
<body> 
<cfset SampleScript = "<script src='sample.js'></script>"> 
cfset Count = 0> 
<cfinclude template="TestTemplate.cfm"> 
<cfinclude template="TestTemplate.cfm"> 
<cfinclude template="TestTemplate.cfm"> 
</body> 
</html> 

Datei TestTemplate.cfm

<cfhtmlhead text="#SampleScript#"> 
<cfset Count++> 
<cfoutput> 
<h1>Count #Count#</h1> 
</cfoutput> 

<cfoutput> 
<cfloop from="1" to="100000" index="i"> 
    <cfscript> 
    j = randRange(i, 1000000); 
    k = randRange(i, 1000000); 
    l = j * k; 
    writeOutput(l); 
</cfscript> 
</cfloop> 
</cfoutput> 

Datei Sample.js

alert('Boo!'); 
+0

Wir hatten dieses Problem auch - eins von allen, na ja, ich bin mir nicht wirklich sicher, aber es müsste in den Tausenden von Anrufen sein, die eine Seite erzeugen, die 11K plötzlich plötzlich zu groß wird Grund. Der Aufruf ist normalerweise ein GET-Aufruf mit nichts ungewöhnlichem in der Abfragezeichenfolge. Ich mache mir mehr Gedanken darüber, was in den Browser zurückkehrt, als den Fehler zu bekommen. – GumbyG

1

Um dies zu beheben, melden Sie sich Coldfusion Administrator, gehen Sie zu Speicher Variablen, und deaktivieren Sie "Deaktivieren der Aktualisierung von Coldfusion internen Cookies mit Coldfusion Tags/Funktionen." Speichern Sie Ihre Einstellungen und starten Sie Ihre Website neu.

+0

können Sie die Quelle hinzufügen, so dass es hilft, klar zu verstehen – lalithkumar

+0

Ich hatte immer noch dieses Problem auftreten mit diesem Element deaktiviert. – pcormier

Verwandte Themen