找不到自定义标签的 CFML 模板
Posted
技术标签:
【中文标题】找不到自定义标签的 CFML 模板【英文标题】:Cannot find CFML template for custom tag 【发布时间】: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 编码器?
谢谢!
【问题讨论】:
【参考方案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
文件中添加 <cfset This.CustomTagPaths = "/CustomTags" />
(假设存在 App cfc 而不是 Application.cfm
)以确保检查该目录的标签。
可以将 Application.cfm 转换为 Application.cfc - 这有多容易取决于其中的代码有多复杂 - 可能是您可以弄清楚的,或者可能需要有经验的 CF 开发人员,这取决于。
根据结果,我们可以尝试调试jstk
标记不起作用的原因(除非上述方法之一解决了它)。
【讨论】:
谢谢彼得! webroot 中的初始位置有效。当 testag.cfm 移动到 CustomTags 目录时,我收到错误“找不到自定义标签 testtag 的 CFML 模板。”顺便说一句,每个 GoDaddy“支持”我也尝试添加以下内容但无效:cfmodule
基本上是调用自定义标签的另一种方式,它不需要文件位于特定目录中。如果路径正确,它应该可以工作。你能用简单的测试标签试试这条路线吗?
是的,在 Adobe CF 中,CustomTagPaths
仅适用于 Application.cfc
- Adobe 没有将功能添加到 Application.cfm
,因为这是较旧的方式,这很烦人。 Railo(另一个 CFML 引擎)添加了通过 cfapplication
标签(即在 Application.cfm 中)使用 CustomTagsPaths
的能力,但不幸的是,这在这里没有帮助。
尝试添加到 test.cfm 在担心复杂的事情之前努力检查简单的事情: 请记住,*nix 系统上的文件名区分大小写,但在 Windows 上则不。
例如,Windows 服务器会选择“application.cfm”,但 linux 服务器不会。它需要“Application.cfm”。
检查以确保所有文件名/路径都是正确的。
【讨论】:
谢谢本,我一直在看。到目前为止还没有发现任何大小写错误。【参考方案3】:一般情况下,CFML 会先检查当前目录下的每个自定义标签,如果没有找到,第二个是在 CFMX8/customtags/ 中。
【讨论】:
以上是关于找不到自定义标签的 CFML 模板的主要内容,如果未能解决你的问题,请参考以下文章