目前,在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