Вы можете запустить Fusebox 5+ в подпапке корня вашего приложения. Возможно, это не самая очевидная вещь, чтобы заставить его работать.
К сожалению, вы не можете создать динамическое отображение для расширения Application.cfc, потому что ваш Application.cfc еще не был создан - вы получаете сценарий «курица против яйца». Вы не можете создать сопоставление для Fusebox, потому что ваш Application.cfc не запустился, вы не можете запустить ваш Application.cfc, потому что он не может найти компонент, который должен расширить.
Это ошибка в COLDFUSION 8. ColdFusion должен искать сопоставления в следующем порядке:
- Сопоставленные папки от администратора CF
- Подкаталоги вне текущего каталога
- Подкаталоги вне корневого веб-каталога с именем
Это происходит при использовании CreateObject (), но не при использовании атрибута Extends в cfcomponent.
Самое простое решение - использовать ваш Application.cfc так же, как вы бы это делали для любого приложения, а затем включить fusebox из вашего index.cfm. Структура вашей папки будет выглядеть так:
/myapp/fusebox5/
/myapp/index.cfm
-- consists of <cfinclude template="fusebox5/fusebox5.cfm" />
Ваш файл index.cfm не будет игнорироваться, если вы не перехватываете запрос с помощью OnRequest Application.cfc или, если вы используете OnRequest, убедитесь, что вы включили предполагаемую цель (которая почти всегда будет index.cfm в любом случае).
Если вы не хотите, чтобы index.cfm выполнял включение, вы можете сделать так, чтобы метод OnRequest вашего Application.cfc сделал cfinclude.
<cffunction name="onRequest">
<cfinclude template="fusebox5/fusebox5.cfm">
</cffunction>
Вам все еще может понадобиться index.cfm, чтобы ваш веб-сервер не давал список каталогов или 404, но это нормально, если файл пуст.