Если у вас должно быть кэширование в dev, вы можете сделать то, что я делаю:
Сначала установите флажок для URL-адреса в верхней части метода onRequest (), который вызовет метод onApplicationStart ():
<cfif IsDefined("URL.dev")>
<cflock timeout="5" scope="Session" type="Exclusive">
<cfif URL.dev EQ true>
<cfset SESSION.debug = true />
<cfelse>
<cfset StructDelete(SESSION, "debug") />
</cfif>
</cflock>
</cfif>
<cflock timeout="5" scope="Session" type="Readonly">
<cfif IsDefined("URL.appreset") or IsDefined("SESSION.dev")>
<cfset StructClear(SESSION) />
<cfset onApplicationStart() />
</cfif>
</cflock>
Это решит большинство ваших проблем. Однако, если у вас есть проблема в классе, который вы загружаете, он не зайдет достаточно далеко, чтобы проверить этот флаг. Решение, которое я использую для этого:
Добавьте в нижнюю часть вашего метода onError () следующее:
<cfif IsDefined("APPLICATION")>
<cfset StructClear(APPLICATION) />
</cfif>
Наконец, вы хотите проверить, существует ли объект APPLICATION и существует ли каждый класс, который вы объявляете как часть области APPLICATION, или вы хотите вызвать onApplicationStart (). Для этого добавьте следующее справа под первым блоком кода в верхней части onRequestStart ():
<cfif not IsDefined("APPLICATION")
OR not StructKeyExists(APPLICATION, "[ClassName1]")
OR not StructKeyExists(APPLICATION, "[ClassName2]")
...>
<cfset onApplicationStart() />
</cfif>