我有一个 href 在尝试替换其父 cfdiv 的内容时会引发错误。
为了保持简短,链接看起来像这样:
<cfdiv id="managerDiv">
<a href="javascript:ColdFusion.navigate('theURL?theVariables','managerDiv');" >add a new thing</a>
</cfdiv>
我收到的错误是一个对话框,指示以下内容:
检索元素 managerDiv 的标记时出错:/manager/CFIDE/administrator/templates/errors.jsp [通过将“cfdebug”添加到您的 URL 参数来启用调试以查看更多信息]
需要注意的几点:
- 在我的 Coldfusion 10 开发环境中,我没有任何问题。此错误仅发生在我的托管服务器上。
- 我的托管和开发环境的目录结构完全相同
- 我的源代码或 Coldfusion 设置中的任何位置都没有指向“errors.jsp”的指针或映射。
- manager 是根级别的子目录
- “theURL”是任何coldfusion文件,我试过一个简单的blank.cfm文件,它仍然传递同样的错误
想法
显然,Coldfusion 似乎正在寻找一个不存在的文件来替换 cfdiv 的内容。但是,我真的不知道它为什么要查找“theURL”的内容以外的内容,以及为什么要在错误中指定的目录中查找它(manager/CFIDE/...)
我又做了一些测试。似乎coldfusion.navigate URL 参数不喜欢相对路径(同样,它在我的开发环境中运行良好,但在生产环境中却不行)。
例如,这有效:
<a href='javascript.Coldfusion.navigate('test.cfm');'>
但这不是:
<a href='javascript.Coldfusion.navigate('folder/test.cfm');'>
想法?