Vous pouvez exécuter Fusebox 5+ dans un sous-dossier de la racine de votre application. Ce n'est peut-être pas la chose la plus évidente pour le faire fonctionner.
Malheureusement, vous ne pouvez pas créer de mappage dynamique pour étendre Application.cfc, car votre application Application.cfc n'a pas encore été instanciée - vous obtenez un scénario de poulet contre oeuf. Vous ne pouvez pas créer le mappage vers Fusebox, car votre fichier Application.cfc n'a pas démarré. Vous ne pouvez pas démarrer Application.cfc car il ne trouve pas le composant qu'il est censé étendre.
CECI EST UN DANS COLDFUSION 8. ColdFusion doit rechercher des correspondances dans cet ordre:
- dossiers CF mappée de l'administrateur
- Les sous-répertoires hors du répertoire courant
- Les sous-répertoires web au large de la root appelé
Il le fait lorsque vous utilisez CreateObject(), mais pas lorsque vous utilisez l'attribut Extends sur cfcomponent. La solution la plus simple est d'utiliser Application.cfc comme vous le feriez pour n'importe quelle application, puis d'inclure fusebox depuis votre index.cfm. Votre structure de dossier ressemblerait à ceci:
/myapp/fusebox5/
/myapp/index.cfm
-- consists of <cfinclude template="fusebox5/fusebox5.cfm" />
Votre fichier index.cfm ne sera pas ignoré aussi longtemps que vous n'interceptent pas la demande avec OnRequest de Application.cfc, ou si vous utilisez OnRequest, assurez-vous d'inclure la cible prévue (qui sera presque toujours index.cfm de toute façon).
Si vous ne souhaitez pas que index.cfm soit inclus dans l'include, vous pouvez demander à la méthode OnRequest de votre Application.cfc d'exécuter cfinclude.
<cffunction name="onRequest">
<cfinclude template="fusebox5/fusebox5.cfm">
</cffunction>
Vous pouvez toujours besoin d'un index.cfm si votre serveur Web ne donnera pas une liste de répertoires ou 404, mais il est ok si le fichier est vide.
Le mappage fonctionnera, mais si vous essayez d'étendre un composant dans ce mappage (fusebox5.Application), il sera rompu. Vous ne pouvez pas créer une instance de Application.cfc tant qu'elle n'a pas trouvé le composant étendu, mais vous ne pouvez pas trouver le composant étendu tant que vous ne l'avez pas mappé. Échouer. –