2017-04-11 55 views
4

我花了一天時間試圖解決兩個應用程序使用相同的相對路徑但位於不同「根」下的問題,這會導致訪問錯誤的代碼庫其中一個應用程序。兩個ColdFusion應用程序的衝突映射

這是我的根在兩種應用:

  1. \ WWW \客戶\
  2. \ WWW \其它\客戶\

結構

..www 
....Clients 
......Application.cfc 
....Other 
......Clients 
........Application.cfc 

在這兩個應用程序中都有引用相對路徑的代碼( 例如,/clients/content/login.cfm

我注意到ColdFusion管理員具有映射部,其中所述第一映射具有映射到的目錄路徑D:/www/的邏輯路徑/

這因爲clients文件夾是www文件夾下直接找到,但是第二個應用程序不能正常工作,因爲它太遵循相同的對應第一應用的效果很好。因此,不是在Others文件夾下搜索/clients/content/login.cfm,而是在www文件夾下再次搜索。

注意:這兩個應用程序有不同的Application.Name,所以他們確實隔離。

最大的問題是我們在舊的ColdFusion 9服務器上沒有遇到這個問題,但是我們在較新的ColdFusion 2016服務器上遇到了這個問題。

通過ColdFusion管理器篩選,我似乎無法找到任何其他設置可能會影響每個應用程序的底層根目錄可能優先於映射。

有沒有我錯過的設置? ColdFusion 9和ColdFusion 2016之間的相對路徑或映射是否有很大改變?

+2

IIRC舊版本的ColdFusion,我們需要有根在ColdFusion管理員'/'映射纔可以正常工作。如果切換到使用特定於應用程序的映射(在Application.cfc文件中定義),那就不再需要了。我將刪除管理員映射並將特定於應用程序的映射添加到您的兩個Application.cfc文件中,以準確定義應用程序文件的位置。 –

+0

應用程序的具體映射確實解決了這種情況,謝謝! – MPaul

回答

2

通過ColdFusion管理員過篩,我似乎無法找到任何 其他設置可能影響每個應用 潛在根源可能優先於映射。

解決方案:使用特定於應用程序的映射。

<cfset this.mappings["/Clients"] = GetDirectoryFromPath(GetCurrentTemplatePath())> 

Source