您可以在应用根目录的子文件夹中运行 Fusebox 5+。让它发挥作用可能不是最明显的事情。
不幸的是,您无法为扩展 Application.cfc 创建动态映射,因为您的 Application.cfc 尚未实例化 - 您将获得鸡与蛋的场景。你不能创建到 Fusebox 的映射,因为你的 Application.cfc 没有启动,你不能启动你的 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 拦截请求,或者如果您使用 OnRequest,请确保包含预期的目标(无论如何几乎总是 index.cfm),您的 index.cfm 文件就不会被忽略。
如果您不想要求 index.cfm 执行包含,您可以让 Application.cfc 的 OnRequest 方法执行 cfinclude。
<cffunction name="onRequest">
<cfinclude template="fusebox5/fusebox5.cfm">
</cffunction>
您仍然可能需要 index.cfm,这样您的 Web 服务器就不会提供目录列表或 404,但如果文件为空也可以。