我有以下目录结构:
| SITES_FOLDER
|___ WEBSITE1
|___ WEBSITE_CFC
|___ CFC_DIR
WEBSITE1 包含一个Application.cfc 和一些页面。然后我在 WEBSITE_CFC 目录中有一个组件 ShoppingCart.cfc 在会话开始时使用以下代码实例化:
createObject("component","WEBSITE_CFC.ShoppingCart").Init() />
这行得通。
现在我将 ShoppingCart.cfc 移动到 CFC_DIR 目录并将我的实例化代码更改为:
createObject("component","CFC_DIR.ShoppingCart").Init() />
显然这不起作用,因为 ColdFusion 在根目录“WEBSITE1”下搜索“CFC_DIR”目录但没有找到。
我认为这个问题可以通过使用映射来解决,所以我去找 CFIDE 管理员。服务器设置 > 映射。
Logical path: "CFC_DIR"
Directory path: "C:\some\folders\SITES_FOLDER\CFC_DIR"
没运气。然后我在Application.cfc中尝试了:
<cfset THIS.mappings["/CFC_DIR"] = "C:\some\folders\SITES_FOLDER\CFC_DIR" />
这也不起作用!
编辑:
也许我明白:如果我尝试从 cfm 模板创建 CFC,它就可以工作。
当我尝试在OnSessionStart Application.cfc 的方法中创建它时出现错误:
确保名称正确且组件或接口存在。消息找不到 ColdFusion 组件或接口 C:\some\folders\SITES_FOLDER\WEBSITE1|WEBSITE_CFC\ShoppingCart.cfc。
换句话说,它一直在错误的目录中寻找它。
为什么?