Coldfusion application.cfc和页面处理/传播

Coldfusion application.cfc和页面处理/传播,coldfusion,coldfusion-9,cfml,application.cfc,Coldfusion,Coldfusion 9,Cfml,Application.cfc,当请求的页面不存在时,是否可以使用OnRequestStart事件处理程序呈现不同的页面 function onRequestStart( string targetPage ) { // handle another page } if(FileExists(cgi.script_name)){ include cgi.script_name; }else{ // render another page } 如果我直接使用include而不是通过onRequest

当请求的页面不存在时,是否可以使用OnRequestStart事件处理程序呈现不同的页面

function onRequestStart( string targetPage ) {
    // handle another page
} 

if(FileExists(cgi.script_name)){
    include cgi.script_name;
}else{
    // render another page
}
如果我直接使用include而不是通过onRequestStart传递它,我会得到一个关于缺少会话的错误

如果不中止执行,则会出现
文件未找到
错误。有没有一种方法可以跳过尝试查找文件并使用onRequestStart事件呈现不同的页面?

尝试此方法

OnError()
如果抛出异常且控制代码未捕获该异常,则会激发该异常

检查这篇文章

试试这个

OnError()
如果抛出异常且控制代码未捕获该异常,则会激发该异常

检查这篇文章

如果您试图阻止不存在cfm模板的coldFusion页面(例如/index2.cfm)的404,您可以在应用程序中使用
onMissingTemplate()


如果导致404的模板不是由CF(即.htm、.html)处理的,那么您必须在Web服务器中使用自定义404页面或可能的url重新连接来捕获它。如果您试图阻止cfm模板不存在的coldFusion页面(例如/index2.cfm)的404,您可以使用
onMissingTemplate()
在您的应用程序中。cfc


如果导致404的模板不是由CF(即.htm、.html)处理的,那么您必须在Web服务器中使用自定义404页面或url rewite(可能是url rewite)

OnError()处理ColdFusion错误。找不到页面不是ColdFusion错误,因此我认为OneError()不会有帮助。好的,我同意你的看法。第一个想法是,我可以做一些事情来立即解决问题,但这种方法是不正确的。404不由OnError处理。OnError()处理ColdFusion错误。找不到页面不是ColdFusion错误,因此我认为OneError()不会有帮助。好的,我同意你的看法。第一个想法是,我可以做一些事情来立即解决问题,但这种方法是不正确的。404不是由onError处理的