我有一个应用程序,当请求到达特定文件时,它的相对位置由一个文件夹输出。如果我尝试包含上面文件夹中的文件
<cfinclude template="../file.cfm">
失败了,但是
<cfinclude template="../../file.cfm">
作品。
如果我直接请求文件,“../ file.cfm”按预期工作。如果我使用替代文件重新创建堆栈,它也可以按预期工作。
所以在我看来,代码中有一些东西导致文件的相对位置不同。
这可能吗?这是相对的,我没有使用任何映射。
如果没有,那么事情就会被打破,我将不得不尝试别的东西。对不起,我无法发布任何代码来演示。
TA
克里斯
答案 0 :(得分:2)
我唯一能想到的是,不知何故,你将地址栏中的URL与文件系统路径的概念混为一谈。
<cfinclude>
相对路径是相对于它包含的文件而言的。
使用您自己的示例:
<!--- thisFile.cfm --->
<cfinclude template="../file.cfm">
这将适用于这种文件层次结构:
/base/
/subdir/
thisFile.cfm
file.cfm
(其中subdir
可以是任何内容,也可以在目录结构中以任何深度抽象,前提是file.cfm
始终与subdir
在同一目录中<)
<!--- thisFile.cfm --->
<cfinclude template="../../file.cfm">
在这种情况下,文件结构必须如下所示:
/base/
/subdir/
/anotherSubDir/
thisFile.cfm
file.cfm
(同样的规则适用于上述,只是由另外一个子目录抽象)。
但相对路径总是相对于<cfinclude>
所在的源代码文件。没有别的。