我第一次尝试使用映射,但遇到了一些问题。在我的 CFadmin 中,我创建了一个如下所示的映射:
逻辑路径:
/email_sender
目录路径:
E:\sites\Example.Com\cf_modules\autoresponders\Emails\emailLists
我正在尝试从 .cfc 访问包含文件。在我的 cfc 中,我有一个包含文件,它位于同一个文件夹中,它工作得很好,但是该包含文件绑定到根据我传递的信息访问另一个包含文件。
组件内的包含文件中包含此代码。
<cfmail from="#emailData.sender#" to="#surveymain.email#" subject="#subject#" type="HTML" >
<cfinclude template="#emailData.includePath#" >
</cfmail>
为了更清楚,这是我的整个文件系统:
access.cfm -> some.cfc -> include_1(有效)-> include_2(路径问题)
我有一个 try/catch,它通过电子邮件将错误发送给我,它位于 include_1 中。
如何使用我创建的映射最终能够访问我的包含文件?
请注意,在emailLists
我拥有动态文件夹之后,这些文件夹会根据我尝试向哪个客户端发送电子邮件而改变。所以路径的最终结果是:
E:\sites\Example.Com\cf_modules\autoresponders\Emails\emailLists\client_A\email_template.cfm
我尝试通过这样做来使用我的映射
<cfinclude template="/email_sender/#emailData.includePath#" >
这给了我这个错误:
CFC 的路径必须指定为完整路径或当前模板的相对路径,而不使用映射。
此外,我尝试在 cfinclude 中包含完整路径,这也导致了以下错误:
注意:如果您希望在 CFINCLUDE 中使用绝对模板路径(例如,>template="/mypath/index.cfm"),则必须使用 ColdFusion 管理器为该路径创建映射。或者,您可以使用每个应用程序设置来指定特定于该应用程序的映射,方法是在 Application.cfc 中指定映射结构到 THIS.mappings。
使用相对路径(例如,template="index.cfm" 或 template="../index.cfm")不需要创建任何特殊映射。因此,建议您尽可能使用 CFINCLUDE 的相对路径。
任何帮助/建议将不胜感激
编辑:重新启动服务器后,工作的版本是这个:
<cfinclude template="/email_sender/#emailData.includePath#" >
感谢那些回答的人。