2017-04-11 1 views
4

Ich habe jetzt über einen Tag damit verbracht, ein Problem zu lösen, bei dem zwei Anwendungen die gleichen relativen Pfade verwenden, aber unter einem anderen "root" liegen und auf die falsche Code-Basis zugegriffen wird eine der Anwendungen.Konflikt beim Mapping für zwei ColdFusion-Anwendungen

Das sind meine Wurzeln zu den beiden Anwendungen:

  1. \ www \ Clients \
  2. \ www \ Other \ Clients \

Struktur

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

In beiden Anwendungen gibt es Code, der auf den relativen Pfad verweist (z.B. /clients/content/login.cfm)

stellte ich fest, dass der Administrator einen Coldfusion Mappings Abschnitt hat, wo der erste Zuordnungs / kartiert auf den Verzeichnispfad D:/www/ einen logischen Pfad aufweist.

Dies funktioniert gut für die erste Anwendung, da der Ordner clients direkt unter dem Ordner www gefunden wird, jedoch funktioniert die zweite Anwendung nicht richtig, da es auch an die gleiche Zuordnung hält. Daher sucht es, anstatt nach /clients/content/login.cfm unter dem Others Ordner zu suchen, noch einmal unter dem Ordner www.

Hinweis: Beide Anwendungen haben eine andere Application.Name, so dass sie in der Tat getrennt sind.

Die größte rote Flagge ist, dass dieses Problem nicht auf unserem älteren ColdFusion 9-Server auftritt, jedoch auf dem neueren ColdFusion 2016-Server.

Beim Durchsuchen von ColdFusion Administrator kann ich keine anderen Einstellungen finden, die den zugrunde liegenden Stamm pro Anwendung beeinflussen könnten, der Vorrang vor den Zuordnungen haben könnte.

Gibt es eine Einstellung, die ich verpasst habe? Gab es drastische Änderungen in Bezug auf relative Pfade oder Zuordnungen zwischen ColdFusion 9 und ColdFusion 2016?

+2

IIRC für ältere Versionen von Coldfusion benötigten wir die Wurzel '/' Mapping in Coldfusion Administrator zu haben, die Dinge funktionieren. Das sollte nicht mehr notwendig sein, wenn Sie auf anwendungsspezifische Mappings umsteigen (definiert in Ihrer Application.cfc-Datei). Ich würde die Administratorzuordnung entfernen und eine anwendungsspezifische Zuordnung zu Ihren zwei Application.cfc-Dateien hinzufügen, die genau definieren, wo sich die Dateien dieser Anwendung befinden. –

+0

Anwendungsspezifische Mapping hat tatsächlich die Situation gelöst, danke! – MPaul

Antwort

2

Sieben durch Coldfusion Administrator, ich kann keine andere Einstellungen zu finden scheinen, die die zugrunde liegende Wurzel pro Anwendung beeinträchtigen könnten die Vorrang vor den Mappings nehmen könnte.

Lösung: Verwenden Sie anwendungsspezifische Zuordnungen.

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

Source