Coldfusion application.cfc中的自定义标记是否忽略此.CustomTagPath?
在我的root application.cfc中,我定义了this.customTagPath。这在所有页面上都有效,包括子文件夹中的页面。在一个子文件夹中,我有一个application.cfc,它扩展了这个根application.cfc。此文件夹中的页面仍然使用正确的自定义标记,因此我们知道这是正常工作的 但是,当尝试在[subfolder]/application.cfc文件本身中使用自定义标记时,我相信它是从不同的自定义标记路径提取的。我在自定义标记中添加了一些调试信息,它在从普通页面调用自定义标记时输出,但在从application.cfc调用时不输出。我没有访问服务器的权限,无法将调试信息放入其他自定义标记路径中 application.cfc中的代码是否忽略了this.customTagPath?如果是,如何使用所需的特定标记?此自定义标记在调用者范围内设置变量,因此不能使用简单的cfInclude调用它 编辑 我将尝试解决这里评论中的一些问题 相关的自定义标记已简化为以下代码:Coldfusion application.cfc中的自定义标记是否忽略此.CustomTagPath?,coldfusion,application.cfc,Coldfusion,Application.cfc,在我的root application.cfc中,我定义了this.customTagPath。这在所有页面上都有效,包括子文件夹中的页面。在一个子文件夹中,我有一个application.cfc,它扩展了这个根application.cfc。此文件夹中的页面仍然使用正确的自定义标记,因此我们知道这是正常工作的 但是,当尝试在[subfolder]/application.cfc文件本身中使用自定义标记时,我相信它是从不同的自定义标记路径提取的。我在自定义标记中添加了一些调试信息,它在从普通页面
<cfset Caller.groupList = "">
<cfquery name="getGroups">
SELECT id, name
FROM groups
WHERE id = 1
</cfquery>
<cfoutput query="getGroups">
<cfset Caller.groupList = #ListAppend(Caller.groupList, name)#>
</cfoutput>
<cfoutput>Caller.groupList: #Caller.groupList#<br></cfoutput>
<cfcomponent extends="RootApplication">
............
<cf_groupList>
<cfoutput>request.groupList: #request.groupList#<br><br></cfoutput>
</cfcomponent>
Application.cfc正在使用以下代码:
<cfset Caller.groupList = "">
<cfquery name="getGroups">
SELECT id, name
FROM groups
WHERE id = 1
</cfquery>
<cfoutput query="getGroups">
<cfset Caller.groupList = #ListAppend(Caller.groupList, name)#>
</cfoutput>
<cfoutput>Caller.groupList: #Caller.groupList#<br></cfoutput>
<cfcomponent extends="RootApplication">
............
<cf_groupList>
<cfoutput>request.groupList: #request.groupList#<br><br></cfoutput>
</cfcomponent>
当从cfm直接调用cf_groupList时,它会将Call.groupList:xxxx写入页面,并显示dev数据库中的正确值。但是,当Application.cfc运行自定义标记时,Call.groupList:xxxx不会出现,而request.groupList:xxxx会出现,在后一种情况下,它会显示我们希望从实时数据库中看到的列表。live和dev站点目前都在同一台服务器上,我们正在更改该服务器,但目前我没有调试信息
我之所以从Application.cfc调用自定义标记,是因为此标记在许多其他地方使用。简单地将代码复制并粘贴到Application.cfc中就可以解决这个问题,但接下来我们会遇到重复代码的问题,我们需要记住在将来的两个地方进行更新。在application.cfc中使用自定义标记而不是复制代码似乎是正确的方法
马克,你说得对。当放置在parent Application.cfc中时,自定义标记可以正常工作。在子对象中,它不会。自定义标记的作用是什么?你怎么称呼它?如何扩展父文件夹中的Application.cfc?分享一些代码。关于对服务器的访问,你是说你不能在开发和测试的机器上启用调试信息吗?作为Dan问题的后续,你应该在本地运行该代码的副本,或者至少在不是生产服务器的远程服务器上,以确保您可以测试和调试问题。如果你不这样做,你需要开始,而不是像斯科特说的那样描述你的情况:给我们代码。把你的情况简化成一个复制的案例,然后贴出来。在这个过程中,你很可能会解决你自己的问题。但是我们不应该猜测代码的细节。另外,这对解决你的问题毫无帮助。您至少可以在大约5分钟的编码时间内回答标题问题。从那里。。。你可以微调你的代码和你的问题。我要补充的是,我必须认真考虑在application.cfc中使用自定义标记的原因。通常,它们对于显示功能非常有用——其他所有内容都可以进入组件。