【发布时间】:2013-01-26 23:17:15
【问题描述】:
我的目录结构如下:
| 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”目录并没有找到。
我认为使用 mappings 可以解决这个问题,所以我去找 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。
换句话说,它一直在错误的目录中寻找它。
为什么?
【问题讨论】:
-
当你说它不起作用时,你能详细说明你的意思吗?发布确切的错误消息。我这么说是因为根据您告诉我们的内容,它应该都能正常工作,所以有些事情您没有告诉我们。我们需要弄清楚那是什么。
-
您的映射服务器设置应该可以正常工作,除非发生了其他奇怪的事情。尝试实例化对象时遇到什么错误?
-
“错误” - 什么错误?
-
cf admin 中的可信缓存。如果您将文件更改为 /CFC_DIR 但它仍在使用 /WEBSITE_CFC 听起来缓存需要清除。
-
这是组件缓存,它保留了错误的绝对路径缓存。谢谢你们。 @PeterBoughton:添加它作为答案,我会接受它,你会在声誉中成长:)
标签: coldfusion mapping coldfusion-10