0

我已经做了一些探索和反复试验,但我没有想出解决这个问题的方法。

我有这样的文件夹结构(示例)

  • 应用程序.cfc
  • 对象\
    • 对象.cfc
  • 实用程序\
    • 实用程序.cfc
  • API\
    • 资源\
      • 索引.cfm
    • 应用程序.cfc

我有一个指向 API 文件夹 (http://api.site.com) 的站点和另一个指向整个根目录 (http://site.com)

来自 Api\Resource\index.cfm。我正在尝试在 Objects\Object.cfc 上创建对象()。我在 CF Admin 或 API\Application.cfc 中使用 this.mappings["/SiteRoot"] = "C:\wwwroot" 设置了一个映射。在 index.cfm 中,我执行 createObject("component","SiteRoot.Objects.Object")。这可以正确访问 Object.cfc。

我遇到的问题是它失败了,因为 Object.cfc 仅通过 createObject("component","Utilities.Util") 实例化了 Utilities\Util.cfc。错误是找不到 Utilities.Util。

在最底部的根目录中还有其他文件,显然可以毫无问题地调用 Object.cfc,因为它自然地进入了 Utilities 文件夹。

有什么建议或者我真的需要完全从这个根目录中删除 API 文件夹吗?

谢谢!

更新 它还没有让我回答我自己的问题,但我想在其他人插话之前在这里发帖。

尽管重新启动了应用程序并重新启动了应用程序服务器,但它仍然无法正常工作。然后突然间,它就像我预期的那样正常工作。Object.cfc 可以根据 Util.cfc 的相对路径正确找到它。

我向那些做出回应的人投了赞成票,因为他们是完全可行的替代方案和解决方案,如果这不是刚刚开始工作的话,他们会选择其中的一个。恶魔,我告诉你。恶魔。

谢谢!

4

2 回答 2

1

我想我会将您的第二个创建对象调用(实用程序之一)更改为 createObject("SiteRoot.Utilities.Util") ?确保一个映射“管理”所有对象的起点,无论在何处实例化。

于 2012-04-12T22:01:46.543 回答
1

如果您确实无法更改您的代码,那么只需创建一个名为 Utilities 的 ColdFusion 映射,指向 Utilities 文件夹。

于 2012-04-12T22:13:25.693 回答