Ich möchte ein Szenario behandeln, in dem Benutzer eine URL von /somePage.cfm trifft, wenn diese Vorlage nicht vorhanden ist, und eine Vorlage aus einem anderen Verzeichnis verwenden. Ich weiß, dass ich das über rewrites in Apache usw. tun kann, aber ich möchte nicht wirklich Logik darin speichern, also gab ich an, onTemplateMissing
Verhalten in meiner Application.cfc zu überschreiben.Überschreiben onMissingTemplate-Behandlung in Application.cfc
Es scheint in meinen Tests gut zu funktionieren, aber ich mache mir Sorgen mit dieser Hacky-Lösung Ich schneide einige Teile ab, die ich noch nicht gesehen habe (zB Methoden, die ich momentan nicht verwende wie onSessionStart) usw.) und könnte in Zukunft Probleme aufwerfen. Hier
ist, was ich momentan mache:
<cffunction name="onMissingTemplate">
<cfargument name="targetPage" />
<!--- Handle any templates that we're really loading from elsewhere --->
<cfif isFooTemplate(arguments.targetPage)>
<cfset onRequestStart(arguments.targetPage) />
<cfset onRequest(arguments.targetPage) />
<cfset onRequestEnd(arguments.targetPage) />
<cfreturn true />
</cfif>
<cfreturn false />
</cffunction>
Beachten Sie, dass auch in meinem onRequest
Methode ich weiter für Vorlagen Handhabung zu tun, die isFooTemplate()
auf true zurückkehren würde.