奇怪的ColdFusion路径问题(ExpandPath结果)

时间:2017-10-16 18:56:06

标签: coldfusion coldfusion-11

希望有人在这里知道ColdFusion,而且,可能知道发生了什么。

<cfscript>
    sz_test1=ExpandPath("/app/folder/afternoon.jpg");
    sz_test2=ExpandPath("app/folder/afternoon.jpg");

    WriteOutput(sz_test1&"<br />");
    WriteOutput(sz_test2&"<br />");
    abort;
</cfscript>

简单的代码,只需输出ExpandPath()结果。

情况:

运行ColdFusion 11的网站会根据一天中的时间将图像打印到页面。 简单的页面,如果它在下午,你得到下午.jpg,否则morning.jpg。 ExpandPath是必需的,因为我们实际上将页面内容输出到pdf(cfdocument + cfimage),这对于这个问题的目的并不重要。但是让你知道,没有人建议不使用ExpandPath作为解决方案..

问题

在这个页面上,就在5分钟前,变量 sz_test1 的结果将返回ColdFusion路径。不是Web根路径。

C:\Coldfusion11\CFIDE\app\folder\afternoon.jpg

sz_test2 会给出:

C:\inetpub\wwwroot\app\folder\afternoon.jpg

因此,第一种情况下文件并不存在。 但是现在,突然之间,ColdFusion不再这样做了。两个测试都返回完全相同的结果。这种情况一直在发生(持续不一致的结果),持续数周。

问题:

任何人都知道什么会导致ExpandPath()函数:

  1. 以斜杠为前缀时返回不一致的结果
  2. 在不对代码(或环境)进行任何更改的情况下突然返回不同的结果。

1 个答案:

答案 0 :(得分:1)

您可能想尝试使用  thisPath = getDirectoryFromPath(getCurrentTemplatePath);  thisFile =&#34;#thisPath#/文件夹/ afternoon.jpg&#34 ;;

它有点笨重但可能会摆脱不一致的行为。