Coldfusion映射cfinclude

时间:2012-10-25 17:21:01

标签: coldfusion coldfusion-9 cfc application.cfc

我第一次尝试使用映射,我遇到了一些问题。在我的CFadmin中,我创建了一个映射,如下所示:

逻辑路径:

  

/ EMAIL_SENDER

目录路径:

  

E:\网站\ Example.Com \ cf_modules \自动回复\电子邮件\ emailLists

我正在尝试从.cfc访问包含文件。在我的cfc里面,我有一个包含文件,它位于同一个文件夹中,它工作得很好但是包含文件正在根据我传递的信息来访问另一个包含文件。

组件内的包含文件中包含此代码。

<cfmail from="#emailData.sender#" to="#surveymain.email#" subject="#subject#"  type="HTML" >
    <cfinclude template="#emailData.includePath#" >
</cfmail>    

为了更清楚这是我的整个文件系统:

  

access.cfm - &gt; some.cfc - &gt; include_1(作品) - &gt; 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的绝对模板路径(例如,&gt; template =“/ mypath / index.cfm”),则必须创建一个   使用ColdFusion Administrator映射路径。或者,你可以   使用每个应用程序设置来指定特定于此的映射   应用程序通过在THIS.mappings中指定映射结构   的Application.cfc。
使用相对路径(例如,   template =“index.cfm”或template =“../ index.cfm”)不需要   创建任何特殊映射。因此建议你   尽可能使用CFINCLUDE的相对路径。

非常感谢任何帮助/建议

编辑: 重新启动服务器后,有效的版本就是这个:  <cfinclude template="/email_sender/#emailData.includePath#" >

感谢那些回复的人。

2 个答案:

答案 0 :(得分:3)

一些问题,而不是一些答案。

  1. 您是否在CFAdmin或Application.cfc中设置了映射?
  2. 如果您运行以下代码,您会得到什么?

    #expandPath( “/ EMAIL_SENDER”)#

  3. #emailData.includePath#的价值是什么?

  4. 这是什么价值:#expandPath("/email_sender#emailData.includePath#")#
  5. 您能否向我们提供错误消息的确切文本,而不是模糊地描述它们。
  6. #fileExists(expandPath("/email_sender#emailData.includePath#"))#的价值是什么?
  7. 如果您可以使用该信息更新您的问题,您可能会发现您出错的地方,或者我们可以帮助您了解故事的内容

答案 1 :(得分:0)

这件事曾经发生在我身上。基本上我们编辑了xml文件,而不是使用管理界面。直到我们的系统管理员重新启动服务器,直到我们意识到为什么没有采用映射为止。那么你添加了映射后重新启动了服务器吗?