我正在发起一个CFC:
<cfset config = new dir.dir1.config() />
这很好用。但突然而且在我看来,如果没有给出理由,它就会启动:
<cfset config = new anotherdir.dir.dir1.config() />
虽然代码显示了第一个实例化,但是如果我删除或重命名anotherdir.dir.dir1.config
文件,则会抛出一个错误,即无法找到该组件。
哪种情况会导致这种行为? 我以我的智慧走在路的尽头。
答案 0 :(得分:10)
使用点表示法时,CF将首先查看相对于您所在文件夹的路径.CF可能会在检查来自根目录的路径之前,在相对于您所在文件的路径上找到cfc。
如果您的代码显示
<cfset config = new dir.dir1.config() >
并且您运行代码的文件位于“anotherdir”目录中,然后它将实例化anotherdir.dir.dir1.config。如果您在“anotherdir”之外并且无法解析相对路径,它将尝试从根目录中查找该组件。