在我的application.cfc文件中,我有以下代码:
this.mappings["/includes"] = "#expandPath('../../priv/inc/')#";
,然后在页面上设置以下CF包含项:
<cfinclude template="/includes/imageOptimise-thumbnail.cfm">
在提交页面的大部分时间里,imageOptimise-thumbnail页面运行没有任何问题,但是偶尔会出现错误,提示它找不到imageOptimise-thumbnail.cfm。如果我重新提交页面,可能会起作用,但问题是,为什么有时无法找到该页面?
我查看了CF管理员,但在日志中看不到任何内容,指出存在错误,但是当失败时,它显然显示了Coldfusion'找不到模板'错误消息。
有人有什么主意吗?
答案 0 :(得分:5)
我认为您的问题源于用于映射的路径是相对的事实。
根据ColdFusion Mappings and Relative Paths中的建议,
故事的寓意是永远不要使用expandPath()创建一个 相对于Webroot的映射。
尝试按照博客的建议使webroot保持静态
<cfset this.mappings["/myapplication"] =getDirectoryFromPath(getCurrentTemplatePath())
并从Webroot导航到/priv/inc/