首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使文件存在,也不能在CF11中找到

即使文件存在,也不能在CF11中找到
EN

Stack Overflow用户
提问于 2015-02-14 05:31:41
回答 1查看 878关注 0票数 0

嗯,我遇到了与这里讨论的相同的错误:

Coldfusion 10文件未找到错误

我正在使用Cold聚变11,开发版本在我的笔记本电脑,Windows8.1 Pro (操作系统)。

为了解决这个问题,人们提出了两种方法:

1)在CFAdmin中设置缺少的模板

2)在onMissingTemplate中设置Application.cfc函数

我基本上不确定其中任何一种方法,但我想采用第一种方法。有人能告诉我如何在CFadmin中设置缺少的模板吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-14 09:46:07

为什么您更喜欢让服务器处理缺少的模板?我自己,我喜欢在每次申请的基础上处理。一些应用程序不应该有指向不存在的文件的链接,其他应用程序可能会将其作为核心的一部分进行操作。

直接从adobe的文档,您可以使用(我意外地从cf8文档中获取这个信息,但是链接到当前文档,结果基本相同。

代码语言:javascript
复制
<cffunction name="onMissingTemplate" returnType="boolean">
    <cfargument type="string" name="targetPage" required=true/>
    ...
    <cfreturn BooleanValue />
</cffunction>

对于我的一些项目,我编写了一个CMS (内容管理-系统),它以时尚的方式将所有内容存储在数据库中。

代码语言:javascript
复制
CMSPages
------------
PID PTitle PFile       PContent
1   Home   /index.cfm  <b>Hey!</b> Welcome to our gollygizmo website.

然后我(我真正的代码实际上使用的是code,而不是直接在文档中)。你可以用任何一种方法来做,但我最容易用内联代码来演示)。

代码语言:javascript
复制
<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>

在这种情况下,根据查询名称缓存查询可能是有益的,您可以执行以下操作

代码语言:javascript
复制
<cfquery name="local.FindPage#hash(arguments.targetpage)#" cachedWithin="...">
  ...
</cfquery>

<cfset request.FindPage=local["Findpage#hash(arguments.targetpage)#"]>

这样,查询就可以由唯一的名称缓存,即使它在文档中可以很容易地通过公共名称访问。

但是,如果您仍然喜欢以服务器为中心的缺少模板处理,那么对cold fusion admin missing template的简单搜索将为您带来这里

  1. 在“ColdFusion管理员”中,单击“设置”以查看“服务器设置”页面
  2. 指定ColdFusion将用于查找错误处理模板的绝对路径。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28512774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档