您可以在應用程序根目錄下的子目錄下運行保險絲盒5+。它可能不是最明顯的做法。
不幸的是,你不能創建一個動態映射來擴展Application.cfc,因爲你的Application.cfc還沒有被實例化 - 你會得到一個雞與蛋的情景。你不能創建到Fusebox的映射,因爲你的Application.cfc沒有啓動,你不能啓動你的Application.cfc,因爲它找不到它應該擴展的組件。
這是COLDFUSION 8. BUG的ColdFusion應該尋找映射順序:
從CF管理員
- 子目錄
- 映射的文件夾斷當前目錄
- 子目錄斷網名爲
它在您使用CreateObject()時執行此操作,但在cfcomponent上使用Extends屬性時不執行此操作。
最簡單的解決方案是像使用任何應用程序一樣使用Application.cfc,然後在index.cfm中包含保險絲盒。你的文件夾結構是這樣的:
/myapp/fusebox5/
/myapp/index.cfm
-- consists of <cfinclude template="fusebox5/fusebox5.cfm" />
你index.cfm文件會因爲你不攔截具有的Application.cfc的OnRequest請求不能只要忽略,或者如果你使用OnRequest,請確保您有預期的目標(無論如何,它幾乎總是index.cfm)。
如果你不想要index.cfm做include,你可以讓你的Application.cfc的OnRequest方法做cfinclude。
<cffunction name="onRequest">
<cfinclude template="fusebox5/fusebox5.cfm">
</cffunction>
您可能仍然需要一個index.cfm讓你的Web服務器不會給一個目錄列表或404,但如果該文件是空的它的確定。
該映射將起作用,但是如果您試圖擴展該映射中的組件(fusebox5.Application),它將會中斷。在找到擴展組件之前,您無法創建Application.cfc的實例,但在找到擴展組件之後才能找到擴展組件。失敗。 – 2009-05-21 19:00:30