嗯,我遇到了与这里讨论的相同的错误:
我正在使用Cold聚变11,开发版本在我的笔记本电脑,Windows8.1 Pro (操作系统)。
为了解决这个问题,人们提出了两种方法:
1)在CFAdmin中设置缺少的模板
2)在onMissingTemplate中设置Application.cfc函数
我基本上不确定其中任何一种方法,但我想采用第一种方法。有人能告诉我如何在CFadmin中设置缺少的模板吗?
发布于 2015-02-14 09:46:07
为什么您更喜欢让服务器处理缺少的模板?我自己,我喜欢在每次申请的基础上处理。一些应用程序不应该有指向不存在的文件的链接,其他应用程序可能会将其作为核心的一部分进行操作。
直接从adobe的文档,您可以使用(我意外地从cf8文档中获取这个信息,但是链接到当前文档,结果基本相同。
<cffunction name="onMissingTemplate" returnType="boolean">
<cfargument type="string" name="targetPage" required=true/>
...
<cfreturn BooleanValue />
</cffunction>对于我的一些项目,我编写了一个CMS (内容管理-系统),它以时尚的方式将所有内容存储在数据库中。
CMSPages
------------
PID PTitle PFile PContent
1 Home /index.cfm <b>Hey!</b> Welcome to our gollygizmo website.然后我(我真正的代码实际上使用的是code,而不是直接在文档中)。你可以用任何一种方法来做,但我最容易用内联代码来演示)。
<cffunction name="onMissingTemplate" returnType="boolean">
<cfargument type="string" name="targetPage" required=true/>
<cftry>
<cfquery name="FindPage">
select * from CMSPages
where pFile = <cfqueryparam cfsqltype="nvarchar" value="#Arguments.targetPage#">
</cfquery>
<cfif FindPage.recordcount eq 1>
<cfoutput query="FindPage">show page stuffs</cfoutput>
<cfreturn true>
<cfelse>
<!--- Page not found, log some stuff or email stuff
include cgi data so you know where the link came from --->
Hey, this page doesn't exist, sorry about that.
<cfreturn true>
</cfif>
<cfcatch>
<!--- Something went wrong, log/email error info and --->
<cfreturn false>
<!--- We return false here to pass it back to the default error handler, which can be a handler set in cfadmin. --->
</cfcatch>
</cftry>
</cffunction>在这种情况下,根据查询名称缓存查询可能是有益的,您可以执行以下操作
<cfquery name="local.FindPage#hash(arguments.targetpage)#" cachedWithin="...">
...
</cfquery>
<cfset request.FindPage=local["Findpage#hash(arguments.targetpage)#"]>这样,查询就可以由唯一的名称缓存,即使它在文档中可以很容易地通过公共名称访问。
但是,如果您仍然喜欢以服务器为中心的缺少模板处理,那么对cold fusion admin missing template的简单搜索将为您带来这里。
https://stackoverflow.com/questions/28512774
复制相似问题