以前(和本地)我已经将fusebox5目录放在web根目录中,然后树中任何位置的应用程序都可以访问它。我之前也使用过Application.cfm而不是.cfc。
在这种环境下,我无法访问webroot,FB文件也不需要放在那么远的地方,所以我计划将它们与应用程序一起存储。如果正在使用Application.cfc,那么index.cfm就会被忽略(因此将cfinclude值更改为eg是没有意义的。../fusebox5/)?如果是这样的话,我如何才能在根目录或映射中没有Fusebox的情况下包含框架呢?错误是:
Could not find the ColdFusion Component or Interface fusebox5.Application. 发布于 2009-05-21 18:52:40
您可以在应用程序根目录的子文件夹中运行Fusebox 5+。这可能不是让它工作的最明显的事情。
不幸的是,您不能创建动态映射来扩展Application.cfc,因为您的Application.cfc还没有被实例化-您得到了一个鸡与蛋的场景。你不能创建到Fusebox的映射,因为你的Application.cfc没有启动,你不能启动你的Application.cfc,因为它找不到它应该扩展的组件。
这是COLDFUSION 8中的错误。ColdFusion应按以下顺序查找映射:
的web根目录中
当您使用CreateObject()时,它会这样做,但当您在cfcomponent上使用扩展属性时,它不会这样做。
最简单的解决方案是像对任何应用程序一样使用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执行include,可以让Application.cfc的OnRequest方法执行cfinclude。
<cffunction name="onRequest">
<cfinclude template="fusebox5/fusebox5.cfm">
</cffunction>你可能仍然需要一个index.cfm,这样你的web服务器就不会给出目录列表或404,但如果文件是空的,也没问题。
发布于 2009-05-21 10:57:50
不,你的应用程序仍然需要index.cfm。您需要的是Application.cfc中Fusebox的cf应用程序映射。查看Ray Camden的Application.cfc template以获取设置特定于应用程序的映射的示例。
发布于 2009-05-21 17:19:08
在Application.cfc中:
<cfscript>
this.mappings = {}; //create a new structure to store app-specific mappings
this.mappings["Fusebox"] = expandPath('./Fusebox'); //add mapping
</cfscript>https://stackoverflow.com/questions/891961
复制相似问题