【问题标题】:Inconsistent 'Cannot find CFML template for custom tag' error不一致的“找不到自定义标签的 CFML 模板”错误
【发布时间】:2012-02-03 16:57:15
【问题描述】:

我在 OSX Snow Leopard 上本地设置了一个 CF9 站点,它的行为开始变得非常奇怪 - 大概每 5 次我在站点中加载任何页面,大约有 1 次,它会抛出一个“找不到 CFML 模板自定义标签的错误。我只是刷新页面,然后一切正常。它可以发生在任何页面上,但它永远不会与任何一个页面一致地发生。此外,当通过 SVN 签入代码时,实时服务器上根本不会发生这种情况,所以我认为这一定是我本地实例上的某种配置问题。我仍然可以完成我的工作,但是必须一直刷新页面非常烦人。有没有人遇到过类似的困难?

【问题讨论】:

  • 听起来像是只在部分时间(即每个 x 请求)运行的代码,这并非完全闻所未闻。我假设您已验证 CustomTags 目录已正确设置,并且所讨论的 CustomTag 已就位、经过测试、验证——您已创建了一个一次性独立页面,该页面也可以调用该标签,并且它的工作方式为嗯——那种事?
  • 是的,自定义标签路径和一切都正确 - 有问题的标签实际上位于 application.cfm 中,因此它是每个请求将遇到的第一个自定义标签,并且存在于每个页面加载中.这几乎就像 CF 服务器在 20% 的时间里忘记了自定义标签的位置:-\
  • 我不相信。是否安全/您能否在此问题的详细信息中提供 Application.cfm 的内容,突出显示对相关 CustomTag 的调用?
  • 您的实时服务器也是 Mac OS X 吗?是否将您的自定义标签文件夹创建为结帐或从 SVN 导出(即 - .svn 文件夹是否存在于您的自定义标签文件夹下)?
  • 是的,.svn 文件夹存在于 Custom Tag 文件夹中……就 application.cfm 的内容而言,我无法发布全部内容,但这是经过编辑的版本从文件开头到触发失败的标签(下)

标签: coldfusion


【解决方案1】:

尝试使用<cfmodule template="pathTo/yourTag.cfm"> 而不是<cf_yourtag>,这样您就可以指定模板的确切位置(以防服务器对它所在的位置感到困惑)。

仅供参考,这是基于 Raymond Camden 博客文章中的提示:http://www.raymondcamden.com/index.cfm/2006/8/17/ColdFusion-Custom-Tag-Tips

【讨论】:

  • 你正在做某事......它仍有 20% 的时间抛出错误,但错误已改为“找不到数据源”(即使 DS 工作得很好其他 80% 再次)。是否有类似的原则可以应用于数据源?
  • 大概,您的数据源设置为变量。查看该变量的设置位置,以及在不同条件下是否可能以不同方式设置。我要验证的另一件事是您确实使用了正确版本的模板,现在您更确定自己使用的是哪个版本。可能是您之前使用了不同的模板,该模板使用了正确的数据源,而现在您正在使用这个模板,您需要更新该值。
  • 好吧,既然您解决了最初的问题,并且新问题似乎相关但不同,我会继续标记您正确并打开一个新问题。谢谢!
【解决方案2】:

克里斯,奇怪的是我现在应该遇到你的问题,因为这件事昨晚才开始发生在我身上。我所有的 CF 错误都通过电子邮件发送给我,我发现在运行相同软件的多个站点上发生了类似的问题,其中一些已经很长时间没有被触及。这让我想到,它可能是 CF 缓存中的一个损坏的编译模板。您可以通过对其稍作更改来重新编译模板,例如添加额外的行或评论或其他内容,然后再次访问该站点。或者,清除整个缓存并让 CF 重建所有内容,这可能是我会做的,因为谁知道还有什么可能会受到影响。

Clearing the Cache in Coldfusion Production server

【讨论】:

  • 不幸的是,这对我没有帮助..仍在寻找答案。
猜你喜欢
  • 2011-02-19
  • 2012-06-24
  • 2011-12-31
  • 2011-10-05
  • 1970-01-01
  • 2018-03-14
  • 2011-09-16
  • 1970-01-01
  • 2016-11-10
相关资源
最近更新 更多