2012-04-12 49 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文件夾即可。