CF2016升级至CF2018后CreateObject()无法解析CFC路径问题求助
问题排查与解决方法
- 调整组件路径写法
CF2018对组件路径的解析逻辑比CF2016严格很多,你当前使用的folder2.file3是基于项目根目录的相对路径,两种修改方案可选:- 使用相对于当前file2.cfc所在目录的相对路径:
../folder2.file3 - 使用基于应用根的全路径:
myproject.folder2.file3
- 使用相对于当前file2.cfc所在目录的相对路径:
- 检查CF管理员映射配置
进入CF2018管理员后台,依次打开「服务器设置 > 映射」,确认CF2016中配置的myproject目录对应的组件映射、目录映射已经同步到CF2018的配置中,升级过程中自定义映射通常不会自动迁移。 - 调整Application.cfc配置
可以在项目根目录的Application.cfc中添加以下配置:// 关闭严格组件路径解析(CF2018默认开启,CF2016默认关闭) this.strictComponentPathResolution = false; // 把项目根目录加入组件搜索路径 this.componentPaths = [expandPath("/myproject")]; - 检查文件权限
确认CF2018服务的运行账号对folder2目录和file3.cfc文件拥有读取权限,升级后服务运行身份变更、权限继承失效都是常见的诱因。
内容的提问来源于stack exchange,提问作者Sashikanta
相关产品推荐
相关产品推荐

