【发布时间】:2017-04-11 15:44:11
【问题描述】:
我现在花了一天多的时间试图解决一个问题,即两个应用程序使用相同的相对路径但位于不同的“根”下,这会导致其中一个应用程序访问错误的代码库。
这些是我对这两个应用程序的根源:
- \www\客户\
- \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 之间的相对路径或映射是否发生了巨大变化?
【问题讨论】:
-
IIRC 对于旧版本的 ColdFusion,我们需要在 ColdFusion 管理员中拥有根
/映射才能正常工作。如果您切换到使用特定于应用程序的映射(在 Application.cfc 文件中定义),则不再需要这样做。我将删除管理员映射并将应用程序特定的映射添加到您的两个 Application.cfc 文件中,准确定义该应用程序的文件所在的位置。 -
应用程序特定映射确实解决了这种情况,谢谢!