【问题标题】:Cannot find CFML template for custom tag找不到自定义标签的 CFML 模板
【发布时间】:2011-02-19 14:18:11
【问题描述】:

我不是 ColdFusion 编码员。帮一个将他的 CF 站点从 Windows 服务器移植到 GoDaddy 上的 Unix 的朋友。

网站显示错误:

找不到自定义标签 jstk 的 CFML 模板。冷融合 尝试查看已安装自定义标签的树,但没有 查找具有此名称的自定义标签。

我发现的站点位于文档根目录 /CustomTags 中,其中包含 jstk.cfm 文件和 cf_jstk 中的一组文件

我的谷歌搜索找到了这个:

您必须将自定义标签页面存储在以下任一位置: 与调用页面相同的目录; cfusion\CustomTags 目录; cfusion\CustomTags 目录的子目录; 您在 ColdFusion Administrator 中指定的目录

所以我有:

  • 尝试在 /cfusion/CustomTags 中创建放置 /CustomTags
  • 尝试将 /cfusion/CustomTags 复制到以上文档根目录
  • 尝试将 jstk.cfm 和子文件夹复制到与调用文件 (index.cfm) 相同的目录中

更新:根据 GoDaddy 支持,我还尝试添加以下内容但无效:<cfmodule template="CustomTags/jstk.cfm">

任何人都可以给我一些提示,还是我应该告诉我的人寻找 CF 编码器?

谢谢!

【问题讨论】:

    标签: coldfusion custom-tags


    【解决方案1】:

    我不知道 GoDaddy 是如何设置的,所以作为快速测试,请执行以下操作:

    在 webroot 中创建文件test.cfm,内容如下:

    <cf_testtag/>
    <cfoutput>test</cfoutput><cfabort/>
    

    在 webroot 中创建文件testtag.cfm,内容如下:

    <cfdump var=#ThisTag# />
    

    然后在浏览器中访问 test.cfm 页面。

    您应该得到两个调试转储,然后是“测试”;这将确认自定义标签通常正常工作。

    如果可行,请将 testtag.cfm 移动到 CustomTags 目录,并查看您是否得到相同的行为或错误。

    如果这产生错误,对于 CF8 及更高版本,您可以在 Application.cfc 文件中添加 &lt;cfset This.CustomTagPaths = "/CustomTags" /&gt;(假设存在 App cfc 而不是 Application.cfm)以确保检查该目录的标签。

    可以将 Application.cfm 转换为 Application.cfc - 这有多容易取决于其中的代码有多复杂 - 可能是您可以弄清楚的,或者可能需要有经验的 CF 开发人员,这取决于。

    根据结果,我们可以尝试调试jstk 标记不起作用的原因(除非上述方法之一解决了它)。

    【讨论】:

    • 谢谢彼得! webroot 中的初始位置有效。当 testag.cfm 移动到 CustomTags 目录时,我收到错误“找不到自定义标签 testtag 的 CFML 模板。”顺便说一句,每个 GoDaddy“支持”我也尝试添加以下内容但无效:
    • 抱歉,将 添加到现有的 application.cfm 并没有改变结果,
    • 是的,cfmodule 基本上是调用自定义标签的另一种方式,它不需要文件位于特定目录中。如果路径正确,它应该可以工作。你能用简单的测试标签试试这条路线吗?
    • 是的,在 Adob​​e CF 中,CustomTagPaths 仅适用于 Application.cfc - Adob​​e 没有将功能添加到 Application.cfm,因为这是较旧的方式,这很烦人。 Railo(另一个 CFML 引擎)添加了通过 cfapplication 标签(即在 Application.cfm 中)使用 CustomTagsPaths 的能力,但不幸的是,这在这里没有帮助。
    • 尝试添加到 test.cfm 这导致打印“struct”表,然后显示“找不到自定义标签 testtag 的 CFML 模板。”
    【解决方案2】:

    在担心复杂的事情之前努力检查简单的事情: 请记住,*nix 系统上的文件名区分大小写,但在 Windows 上则不。

    例如,Windows 服务器会选择“application.cfm”,但 linux 服务器不会。它需要“Application.cfm”。

    检查以确保所有文件名/路径都是正确的。

    【讨论】:

    • 谢谢本,我一直在看。到目前为止还没有发现任何大小写错误。
    【解决方案3】:

    一般情况下,CFML 会先检查当前目录下的每个自定义标签,如果没有找到,第二个是在 CFMX8/customtags/ 中。

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 2012-06-24
      • 2011-12-31
      • 1970-01-01
      • 2015-01-20
      • 2021-07-13
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多