アプリのルートのサブフォルダーで Fusebox 5+ を実行できます。それを機能させることは、最も明白なことではないかもしれません。
残念ながら、Application.cfc がまだインスタンス化されていないため、Application.cfc を拡張するための動的マッピングを作成することはできません。鶏と卵のシナリオが発生します。Application.cfc が起動しなかったため、Fusebox へのマッピングを作成できません。拡張するはずのコンポーネントが見つからないため、Application.cfc を起動できません。
これは COLDFUSION 8 のバグです。ColdFusion は次の順序でマッピングを検索する必要があります。
- CF アドミニストレーターからマップされたフォルダー
- 現在のディレクトリのサブディレクトリ
- 呼び出された Web ルートのサブディレクトリ
これは、CreateObject() を使用すると行われますが、cfcomponent で Extends 属性を使用した場合には行われません。
最も簡単な解決策は、他のアプリケーションと同じように Application.cfc を使用し、次に index.cfm から fusebox を含めることです。フォルダー構造は次のようになります。
/myapp/fusebox5/
/myapp/index.cfm
-- consists of <cfinclude template="fusebox5/fusebox5.cfm" />
Application.cfc の OnRequest でリクエストをインターセプトしない限り、index.cfm ファイルは無視されません。または、OnRequest を使用する場合は、目的のターゲット (ほとんど常に index.cfm になります) が含まれていることを確認してください。
index.cfm でインクルードを実行する必要がない場合は、Application.cfc の OnRequest メソッドで cfinclude を実行できます。
<cffunction name="onRequest">
<cfinclude template="fusebox5/fusebox5.cfm">
</cffunction>
Web サーバーがディレクトリの一覧や 404 を表示しないように index.cfm が必要な場合もありますが、ファイルが空であれば問題ありません。