我有一個使用多層目錄結構建立的CF9項目。在根級別,我擁有帶有Application.cfc的實時生產站點。它包含許多綁定到'debugMode'標誌的變量 - 所以在生產站點的情況下,該標誌設置爲false。錯誤的Application.cfc被主站點的子目錄中的測試站點引用
在生產站點的子目錄中,我有一個包含該站點測試版本的文件夾。這有其自己的Application.cfc,其debugMode設置爲true。除了我們正在測試的這個標誌和更改外,它與生產Application.cfc相同。
直到我們添加了用於重置Application.cfc的邏輯,以便在不等待超時(我們設置爲30分鐘)的情況下查看我們的更改時,沒有任何問題。
要做到這一點,我們添加了這個塊中的Application.cfc的「OnRequestStart」功能(它存在於生產和測試版本):
<cfif StructKeyExists(URL, "reset")>
<!--- Reset application and session. --->
<cfset THIS.OnApplicationStart() />
<cfset THIS.OnSessionStart() />
</cfif>
這初步顯現做工精細。如果我們在測試版本的任何頁面的url上添加'?reset',則對Application.cfc所作的更改立即反映出來,但我們很快發現了一個令人討厭的副作用:在測試版本上調用重置ALSO更改我們的生產站點以使用測試Application.cfc的版本,從而大大放大了一切。
在生產站點上運行'?reset'邏輯解決了這個問題,但後來導致所有測試頁面都使用生產Application.cfc而不是測試版本。等待Application.cfcs超時並自動刷新沒有任何區別,所以現在我們的測試環境已經搞亂了。
任何有關正在進行或正在做什麼的信息都將非常感謝,因爲我們相當難過。這僅僅是一個糟糕的建築?我們繼承了它,現在已經習慣了這種結構,所以快速修復將是首選,但我願意接受建議。
謝謝。
謝謝了。這個伎倆。 – Dane 2010-09-10 19:50:53