我注意到,当我调用以前包含的 (cfinclude) .cfm 文件的函数时,此时发生的所有冷融合导入 (cfimport) 都被遗忘了。就像你没有导入任何东西一样。我发现了这种非常奇怪的行为,因此我将其隔离,但结果保持不变,即使在冷融合 10 中也是如此。
我的设置:
/例子
- 函数.cfm
- 索引.cfm
- /组件
- 我的CFC.cfc
函数.cfm:
<cfscript>
function test(){
return "test";
}
</cfscript>
组件/MyCFC.cfc:
component output="false"{}
索引.cfm:
<cfscript>
include "functions.cfm";
import components.MyCFC;
foo = test();
bar = new MyCFC();
</cfscript>
此代码将引发冷融合错误:“找不到 ColdFusion 组件或接口 MyCFC”。当foo = test();
被删除或放置在 之后bar = new MyCFC();
,代码运行得很好。
导入是放在包含之前还是之后都没有关系。每当调用包含的函数时,都会忘记导入。
这是一个错误还是应该以这种方式表现?
在coldfusion 9,0,0,251028和coldfusion 10,282462中测试