2012-04-12 50 views
0

我已经做了一些周到的尝试和错误,但我没有提出解决这个问题的方法。Coldfusion CFC使用引用其他文件夹的CFC映射到外部目录

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

  • 的Application.cfc
  • 对象\
    • Object.cfc
  • 公用事业\
    • Util.cfc
  • API \
    • 资源\
      • index.cfm
    • 的Application.cfc

我有一个网站,指向API文件夹(HTTP:/ /api.site.com),另一个指向整个根(http://site.com)

从Api \ Resource \ index.cfm。我正在尝试在Objects \ Object.cfc上创建Object()。我使用this.mappings [“/ SiteRoot”] =“C:\ wwwroot”在CF管理员或API \ Application.cfc中设置了映射。在index.cfm里我做了createObject(“component”,“SiteRoot.Objects.Object”)。这正确访问Object.cfc。

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

底层的根目录中还有其他文件,显然可以调用Object.cfc,因为它只是自然进入Utilities文件夹。

任何建议还是我真的需要从这个根完全打破API文件夹?

谢谢!

UPDATE 这不是让我回答我的问题,只是还没有,但我想在这里发表别人插话了。

尽管reiniting应用程序并重新启动应用程序服务器,一次或两次,这不是加工。然后突然,它就像我预料的那样工作了。 Object.cfc可以根据它的相对路径正确地找到Util.cfc。

我对那些回应的人给予了赞扬,因为他们是完全可行的替代方案和解决方案,并且如果这不仅仅是开始工作,他们中的一个人会离开。恶魔,我告诉你。恶魔。

谢谢!

回答

1

我想我会改变你的第二个创建对象调用(实用程序之一)createObject(“SiteRoot.Utilities.Util”)?确保一个映射“管理”了所有对象的起点,而不管在哪里实例化。

1

如果您确实无法更改代码,则只需创建一个名为Utilities的ColdFusion映射,并将其指向Utilities文件夹即可。