我们有一个 Coldfusion 服务器,它托管多个应用程序,所有应用程序都在它们自己的子文件夹中。就像是:
- /webroot文件夹/应用程序A
- /webroot 文件夹/applicationB
此外,在开发服务器上,每个开发人员都有一个给定应用程序的副本,每个都是 Subversion 工作副本:
- /webroot文件夹/applicationA_dev1
- /webroot文件夹/applicationA_dev2
- /webroot文件夹/applicationA_dev3
由于我们正在运行 Coldfusion 7(对升级有很大的阻力),我发现自己陷入了困境,因为我想在包中使用 CFC。以下是各种问题,尝试的解决方案和这些问题:
- 仅当存在单个包时才使用相对组件名称,这会使单个文件夹中的组件变得混乱。
- 只要您从不引用父包中的组件,就可以使用子包,这在扩展、实例化或使用组件作为 cfargument 类型时似乎很容易发生。
- 使用从根目录开始的完整 CFC 路径不适用于我们每个开发人员的多个副本。** 到目前为止,使用带有变量的动态路径是我的解决方案...直到我意识到它不适用于扩展或 cfargument 类型... ** 使用服务器映射在开发中不起作用,因为我们会有一个每个开发人员副本的别名。我希望代码与文件夹无关。** 使用特定于应用程序的映射(在 Application.cfc 中定义)不起作用,因为 CF7 而不是 CF8+。
- 创建所需 CFC 的本地虚拟副本并包含实际 CFC 的内容(使用相对路径“../../”)是我以前的解决方案。它可以工作,但是到处都是这些克隆真是太麻烦了。** 最近,我发现这个解决方案并不总是有效。Coldfusion 显然对各种 CFC 中包含的同名函数感到困惑。
- 在每个开发人员的机器上使用开发 Coldfusion 服务器,允许应用程序路径始终存在
/webrootfolder/applicationA
(由 Mark A Kruger 建议)。** 这里的主要问题是说服计算机团队让我们安装它。这可能需要很长时间,我担心我没有。** 网络配置可能还有其他问题(我不确定是否可以访问数据库),如果允许的话,这也必须通过网络团队并需要一段时间。
每个应用程序/文件夹一个网站 - 更改根目录
我花时间探索了网站/应用程序在 IIS 6 中的配置方式。经过一些研究,我发现可以创建绑定,就像我在 Unix/Apache 下习惯的那样。目前,所有应用程序都位于 Web 根目录下它们自己的子文件夹中。别名已配置,例如,使“domain.com/appA”指向“/webrootfolder/applicationA”文件夹。但它仍然是一个包含大量子路径的单一 IIS 网站。Coldfusion 根(用于 CFC 和包含)因此基于该网站的根 (/webrootfolder)。
我做了一个快速测试,并设法在服务器上建立了第二个 IIS 网站,绑定到端口 8080(而不是默认的 80)。我将这一点直接指向 /webrootfolder/applicationA/cfm (这实际上是应用程序的根目录)。有了这个,Coldfusion 将该文件夹识别为根目录,并将“对象”CFC 实例化为/webrootfolder/applicationA/cfm/Object.cfc
.
这正是我们在我之前的工作中所拥有的,而且效果非常好。也就是说,这是一家小公司,我担心这个解决方案可能会有问题。主要是:我如何将人们指向这个网站?使用端口绑定对用户不是很友好(我们的用户不是技术人员)。每个应用程序都有一个特定的域听起来不错,但可能代价高昂,尤其是在涉及 HTTPS 的情况下(或者我听说过)。子域可能是另一种解决方案,但似乎有类似的问题。
所以...
我错过了什么吗?我是否坚持使用“凌乱”的解决方案之一?
我可以访问 Coldfusion 管理面板和可能的 IIS 配置,但如果解决方案影响服务器上其他应用程序的路径或 URL,我很可能会受到限制。