丹尼尔基本上是正确的,你需要一个映射。但是,有 3 种解决方法。
CFC 会选择当前路径作为相对根映射,所以如果你的 CFC 都在同一个目录中,你可以说
<cfcomponent name="MyComponent" extends="Example">
或者,如果您的组件位于当前 cfc 的子目录中,您可以访问它:
<cfcomponent name="MyComponent" extends="subdirectory.Example">
其次,如果您在 ColdFusion 8 上运行,您可以使用如下映射结构在 application.cfc 中定义映射:
<cfset this.mappings["/MyApp"] = expandPath(".") />
Application.cfc 有两个很好的参考,第一个是Ray Camden 的示例 Application.cfc,它只是提供了一个很好的视图去哪里,然后是CF8 Live Docs 应用程序设置页面,其中有一个关于映射的部分以及一些很好的评论。
最后,您可以使用 Web 根目录的内置映射,因此如果您的应用程序位于 Web 根目录之外的名为“MyApp”的子目录中,那么您的根映射将是“MyApp”。假设您正确地将组件放入:
wwwroot\MyApp\com\MyApp\example.cfc
在这种情况下,到此 cfc 的映射将是:
MyApp.com.MyApp.Example
并使用您的示例,您可以像这样扩展:
<cfcomponent name="MyComponent" extends="MyApp.com.MyApp.Example">
其他任何事情,例如您的组件是否位于 Web 根目录之外,或者您不确定已完成应用程序的文件夹结构是什么,您需要在 CF Administrator 中设置映射。