两个ColdFusion应用程序的冲突映射

两个ColdFusion应用程序的冲突映射,coldfusion,relative-path,Coldfusion,Relative Path,我花了一天多的时间试图解决一个问题,即两个应用程序使用相同的相对路径,但位于不同的“根”下,这会导致其中一个应用程序访问错误的代码库 以下是我对两个应用程序的理解: \www\Clients\ \www\Other\Clients\ 结构 ..www ....Clients ......Application.cfc ....Other ......Clients ........Application.cfc 在这两个应用程序中,都有引用相对路径的代码(例如,/clients/co

我花了一天多的时间试图解决一个问题,即两个应用程序使用相同的相对路径,但位于不同的“根”下,这会导致其中一个应用程序访问错误的代码库

以下是我对两个应用程序的理解:

  • \www\Clients\
  • \www\Other\Clients\
  • 结构

    ..www 
    ....Clients 
    ......Application.cfc 
    ....Other 
    ......Clients 
    ........Application.cfc
    
    在这两个应用程序中,都有引用相对路径的代码(例如,/clients/content/login.cfm)

    我注意到ColdFusion管理员有一个映射部分,其中第一个映射有一个逻辑路径
    /
    映射到目录路径
    D:/www/

    这适用于第一个应用程序,因为
    clients
    文件夹直接位于
    www
    文件夹下,但是第二个应用程序无法正常工作,因为它也遵循相同的映射。因此,它不再在
    其他
    文件夹下搜索
    /clients/content/login.cfm
    ,而是在
    www
    文件夹下再次搜索

    注意:两个应用程序都有一个不同的
    应用程序。名称
    ,因此它们确实是分开的

    最大的危险是,我们在较旧的ColdFusion 9服务器上没有遇到此问题,但在较新的ColdFusion 2016服务器上却遇到了此问题

    通过筛选ColdFusion Administrator,我似乎找不到任何其他可能影响每个应用程序的底层根的设置,这些设置可能优先于映射

    有我错过的场景吗?ColdFusion 9和ColdFusion 2016之间的相对路径或映射是否发生了重大变化

    在ColdFusion管理员中筛选,我似乎找不到任何 可能影响每个应用程序的基础根目录的其他设置 可以优先于映射

    解决方案:使用特定于应用程序的映射

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

    IIRC对于较旧版本的ColdFusion,我们需要在ColdFusion管理员中具有根
    /
    映射,以使其正常工作。如果切换到使用特定于应用程序的映射(在application.cfc文件中定义),则不再需要这样做。我将删除管理员映射,并将特定于应用程序的映射添加到您的两个application.cfc文件中,以精确定义该应用程序文件的位置。特定于应用程序的映射确实解决了此问题,谢谢!