使用onMissingTemplate()无法处理Coldfusion 8中的404错误

时间:2011-03-14 12:10:17

标签: coldfusion error-handling http-status-code-404 application.cfc

我正在尝试使用Application.cfc中的onMissingTemplate()方法处理我的ColdFusion应用程序中的404错误。

我的开发环境是ColdFusion 8(开发版)+ JRun + Linux。在[web_root] /testmissing/Application.cfc中,我有来自CF docs的代码:

<cfcomponent>

    <cffunction name="onMissingTemplate">
        <cfargument name="targetPage" type="string" required=true/>

        <!--- Use a try block to catch errors. --->
        <cftry>
            <!--- Log all errors. --->
            <cflog type="error" text="Missing template: #Arguments.targetPage#">

            <!--- Display an error message. --->
            <cfoutput>
                <h3>#Arguments.targetPage# could not be found.</h2>
                <p>You requested a non-existent ColdFusion page.<br />
                Please check the URL.</p>
            </cfoutput>

            <cfreturn true />

            <!--- If an error occurs, return false and the default error
            handler will run. --->
            <cfcatch>
                <cfreturn false />
            </cfcatch>
        </cftry>

    </cffunction>
</cfcomponent>

当我浏览/testmissing/foo.cfm时,我得到默认CF“找不到文件:...”错误页面。

我在不同的环境中尝试了相同的代码:Coldfusion 9(开发版)+ Apache + Windows。正如预期的那样,浏览/testmissing/foo.cfm会导致来自onMissingTemplate的custom错误消息。

这证明代码没问题,问题出现在我的开发环境中,但我找不到它。任何想法为什么我仍然得到默认的CF错误页面?

2 个答案:

答案 0 :(得分:0)

您的错误处理程序如何在CF管理员中设置?比较您的CF8和CF9环境。

答案 1 :(得分:0)

你试过没有试试/捕获吗?只是想确保你没有掩盖cflog的问题。