Coldfusion 未访问webroot的Fusebox安装

Coldfusion 未访问webroot的Fusebox安装,coldfusion,fusebox,Coldfusion,Fusebox,以前(和本地)我将fusebox5目录放在web根目录中,然后来自树中任何位置的应用程序都可以访问它。我以前也使用Application.cfm而不是.cfc 在这种环境下,我无法访问webroot,而且FB文件也不需要太远,所以我计划将它们与应用程序一起存储。如果使用Application.cfc(因此没有必要将cfinclude值更改为例如./fusebox5/),我认为index.cfm会被忽略,对吗?如果是这样,我如何在根目录或映射中不使用Fusebox的情况下包含框架?错误是: Cou

以前(和本地)我将fusebox5目录放在web根目录中,然后来自树中任何位置的应用程序都可以访问它。我以前也使用Application.cfm而不是.cfc

在这种环境下,我无法访问webroot,而且FB文件也不需要太远,所以我计划将它们与应用程序一起存储。如果使用Application.cfc(因此没有必要将cfinclude值更改为例如./fusebox5/),我认为index.cfm会被忽略,对吗?如果是这样,我如何在根目录或映射中不使用Fusebox的情况下包含框架?错误是:

Could not find the ColdFusion Component or Interface fusebox5.Application. 

不,您的应用程序仍然需要index.cfm。您需要的是application.cfc中Fusebox的cf应用程序映射。查看Ray Camden的设置应用程序特定映射的示例。

在application.cfc中:

<cfscript>
    this.mappings = {}; //create a new structure to store app-specific mappings
    this.mappings["Fusebox"] = expandPath('./Fusebox'); //add mapping
</cfscript>

this.mappings={}//创建新结构以存储特定于应用程序的映射
this.mappings[“Fusebox”]=expandPath('./Fusebox')//添加映射

您可以在应用程序根目录的子文件夹中运行Fusebox 5+。这可能不是让它发挥作用的最显而易见的事情

不幸的是,您无法为扩展Application.cfc创建动态映射,因为您的Application.cfc尚未实例化-您得到了一个鸡对蛋的场景。无法创建到Fusebox的映射,因为Application.cfc未启动,无法启动Application.cfc,因为它找不到应该扩展的组件

这是COLDFUSION 8中的一个BUG。ColdFusion应按以下顺序查找映射:

  • 从CF管理员映射的文件夹
  • 当前目录下的子目录
  • web根目录下的子目录称为
当您使用CreateObject()时,它会执行此操作,但当您在cfcomponent上使用Extends属性时,它不会执行此操作

最简单的解决方案是像对任何应用程序一样使用Application.cfc,然后从index.cfm中包括fusebox。您的文件夹结构如下所示:

/myapp/fusebox5/
/myapp/index.cfm
  -- consists of <cfinclude template="fusebox5/fusebox5.cfm" />
/myapp/fusebox5/
/myapp/index.cfm
--包括
只要不使用Application.cfc的OnRequest截获请求,index.cfm文件就不会被忽略,或者如果使用OnRequest,请确保包含预期目标(无论如何几乎总是index.cfm)

如果您不想要求index.cfm执行include,可以让您的应用程序.cfc的OnRequest方法执行cfinclude

<cffunction name="onRequest">
    <cfinclude template="fusebox5/fusebox5.cfm">
</cffunction>


您可能仍然需要index.cfm,这样您的web服务器就不会给出目录列表或404,但如果文件为空则可以。

映射可以工作,但如果您试图扩展该映射(fusebox5.Application)中的组件,它将断开。在Application.cfc找到扩展组件之前,您无法创建该扩展组件的实例,但在找到该扩展组件的映射之前,您无法找到该扩展组件。失败。