目录不存在,但很明显

时间:2016-06-01 21:31:02

标签: linux coldfusion server coldfusion-11

我正在为我的公司制作一个旧的Coldfusion 11应用程序,这个错误让我很难过。 .cfm内有以下检查:

<cffunction name="init">
<cfargument name="searchDir" required="yes" default="#replace(GetDirectoryFromPath(GetCurrentTemplatePath()),'/services','')#xml/">
    <cfargument name="checkoutMode" required="no" default="protect">

    <!--- library variables initialization --->
    <cfset Variables.libBaseDir = arguments.searchDir>
    <cfset Variables.libCheckoutMode = arguments.checkoutMode>


    <cfif NOT DirectoryExists(Variables.libBaseDir)>
        <cfthrow message="The base document directory '#Variables.libBaseDir#' does not exist!">
    </cfif>
    ....
</cffunction>

Variable.libBaseDir在错误消息中打印为:

/opt/app/coldfusion/coldfusion11/cfusion/wwwroot/<some-app>/xml/

但我的目录显然如下(使用pwd):

/opt/app/coldfusion/coldfusion11/cfusion/wwwroot/<some-app>/xml

这适用于Windows服务器,但不适用于Linux ,这是我的唯一目的。

任何想法为什么会引发错误,谢谢。

1 个答案:

答案 0 :(得分:0)

这是我最终使用的原因,因为&#34; /&#34;无论我做了什么,都继续被追加到路径的尽头。

<cfargument name="searchDir" required="yes" default="#replace(GetDirectoryFromPath(GetCurrentTemplatePath()),'services/','xml')#">

<cfset Variables.libBaseDir = Left(arguments.searchDir, Len(arguments.searchDir)-1)>

所以我删除了&#34; /&#34;在路径的尽头,并修复它。

感谢之前的所有建议。