目前,在application.cfc中,我扩展了Fusebox 5.5框架。 然后在下面的OnRequestStart方法中,我根据一定的条件设置保险丝盒模式。保险丝盒不解析xml文件
问题是,有时,fusebox xml文件不会重新解析,无论我做出什么改变。如果我使用url变量强制重新分析fusebox.parse = true & fusebox.loadclean = true & fusebox.password = xxx然后文件再次解析。
这几乎就像保险丝盒仍然在生产模式下,即使当我放弃它说FUSEBOX_PARAMETERS.mode“以发展为满负荷”
可能是什么造成的?在下面的代码中,保险丝模式的操作方式是正确的,还是应该在其他地方进行这种设置(除了fusebox.xml)。
任何帮助将是伟大的。 感谢
<cffunction name="onRequestStart">
<cfset variables.server_type = "Development" />
<cfswitch expression="#variables.server_type#">
<cfcase value="development">
<cfset FUSEBOX_PARAMETERS.mode = "development-circuit-load" />
<cfset FUSEBOX_PARAMETERS.debug = true />
<cfset request.component_reload = true />
</cfcase>
<cfdefaultcase>
<cfset FUSEBOX_PARAMETERS.mode = "production" />
<cfset FUSEBOX_PARAMETERS.debug = false />
<cfset request.component_reload = false />
</cfdefaultcase>
</cfswitch>
<cfif (StructKeyExists(attributes, "fusebox.loadapp") AND attributes.fusebox.password EQ application.fusebox.password) OR FUSEBOX_PARAMETERS.mode NEQ application.fusebox.mode>
<cfset this.onApplicationStart() />
</cfif>
<cfset superReturn = super.onRequestStart(arguments.1) />
</cffunction>
感谢您的回复 - 我怀疑它与应用范围有关。 因此,如果我在调用 之前将代码放入onApplicationStart方法中, –
Cheeky
2011-05-08 13:26:59
@ Cheeky,你的意思是把你的代码,对吧?我认为''may'也可以在'onApplicationStart'上工作,但是你至少需要做两件事:(1)在那之后执行'super.onApplicationStart()'; (2)以某种方式强制应用程序重新启动,除非它在超时之前不会被触发。另外,我不认为'FUSEBOX_PARAMETERS'会在'onApplicationStart'里面工作,可能你应该试试'application.fusebox'格式。但最简单的解决办法就是按照我在答案中提出的方式去做。 – Sergii 2011-05-08 14:26:24
@Sergii:请介绍一下“我建议将cfswitch代码移到定义应用程序设置的组件主体中”。在此应用程序中,所有设置均在fusebox.init或appliction.cfc中定义。应用程序设置没有单独的CFC。谢谢@ Sergii:请介绍一下“我建议将cfswitch代码移到定义应用程序设置的组件主体中”。在此应用程序中,所有设置均在fusebox.init或appliction.cfc中定义。应用程序设置没有单独的CFC。所以也许在fusebox.init放置开关,t – Cheeky 2011-05-12 05:58:16