我首先要说的是this faq Mach-II,它讨论了在以下情况下使用特定于应用程序的映射作为第三种选择:
无法在服务器根目录中找到框架,
创建服务器范围到Mach-II框架目录的映射是不可能的
使用特定于应用程序的映射也适用于具有类似要求的其他ColdFusion框架(ColdSpring)。这是我的问题:我的(我应该说“他们的”)生产服务器都在运行ColdFusion MX7,并且在ColdFusion 8中引入了特定于应用程序的映射。我很可能无法执行选项1或2,因为它们涉及创建服务器可能与其他应用程序冲突的广泛变化(我对此没有最终决定权,但我正在准备这样做)。
那就是说,是否有人在类似的绑定中并且在任何ColdFusion版本或任何类似的框架中都做了选项4?我能想到的唯一选择是修改整个框架以改变这条硬编码路径,即使这样做有用也会耗费时间和风险。我很确定如果有一个简单的修改或其他简单的解决方案,它已经包含在框架中(可能它包含在Mach-II的1.8版本中,我还不知道它)。
对于解决此问题的任何想法,甚至是具有特定路径要求的库的非正统设置都将受到赞赏。来自Team Mach-II的任何想法都会特别感激......我们在这里是同一个团队马特! ; - )
修改
显然,ColdBox框架包含一个refactor.xml
ANT任务,其中包含一个目标,该目标重构ColdBox代码以使用不同的绝对路径作为基础以及其他几个有用的重构目标。 ColdBox用户解决了这个问题。
查看Mach-II(1.6和1.8)的build.xml,我没有看到任何允许我重构代码的目标。我想为Mach-II创建这样一个任务的功能请求票但是坦率地说我不认为创建这样的ANT任务是MachII团队的一个重要优先事项,因为这个需求实际上只涉及到任何一个
我所拥有的ColdSpring代码根本没有任何ANT任务,虽然我有单元测试,我敢打赌如果我在SVN周围找到了一些构建脚本。
使用Ant任务来重构和重新测试代码,或者为应用程序创建单独的ColdFusion实例的更简单(以及那种警察)解决方案是我能够提出的最佳答案。我不需要将此应用程序存在于其他应用程序的共享范围内,因此我的第一个解决方案是尝试为此应用程序获取专用的CF实例。
我还将查看ColdBox refactor.xml ANT任务,然后看看我是否可以修改它以通常用于识别和重构具有修改的绝对路径的CFC引用。如果我完成此任务,我将确保在某处发布代码并编辑创建一个链接到它的答案。如果有其他人想要解决这个问题或帮助我解决问题,请随意。
在此之前,我将打开这个问题,看看是否有人提出了更好的解决方案。
答案 0 :(得分:2)
我认为Fusebox不是那么严格。
在XML模式下(也许我称这不是100%正确,只是意味着使用 Application.cfm ),它恰好包含在 index.cfm 中,类似于:
<cfinclude template="fusebox5/fusebox5.cfm" />
在非XML模式下,它需要在根 Application.cfc 中正确扩展:
<cfcomponent extends="path.to.fusebox5.Application" output="false">
您所需要的只是了解路径。
答案 1 :(得分:1)
也许您可以创建symbolic link并让操作系统为您解决问题?
答案 2 :(得分:1)
继Aaron's response之后,支持符号链接,然后是CF7 / 8,因此如果您的系统管理员允许,这可能是一个非常简单的解决方案。不幸的是,如果你在窗户上它不会帮助你
答案 3 :(得分:0)
我在stackoverflow中遇到的另一个解决方案是related problem建议在服务器上创建一个单独的ColdFusion实例。这将允许我使用选项1)而不会与服务器上的其他应用程序产生冲突。我并不期待将这一个浮动到sys-admins,所以我希望还有另一个解决方案。
答案 4 :(得分:0)
它应该像在域的根目录下删除'MachII'文件夹一样简单(例如example.com/MachII)。如果您只是部署在网站域的根目录,则不需要使用Mach-II映射。
此外:
请为您在问题中提到的ANT任务提交一张票。 Mach-II团队很想记录这个问题:
Enter a new ticket on the Mach-II Trac
如果您想为我们解决ANT任务,我们可以比等待团队成员处理故障单更快地将这样的内容合并到构建中。欢迎并赞赏社区提交的代码。
我们不经常关注Stack Overflow,因此我们邀请您加入我们的官方社区小组,在Google Groups上加入名为“Mach-II for ColdFusion”的社区小组。如果您需要团队的反馈,Google群组是提出此类问题或评论的最佳位置。
答案 5 :(得分:0)
我最近一直在使用FW / 1,虽然看起来你需要添加一个映射并扩展org.corfield.framework,但实际上你可以将framework.cfc文件移动到你的web根目录中并且只是扩展= “框架”。这很简单,让你直接进入一个没有混乱和很少开销的伟大框架。