tl;dr:在主机应用程序中renderLayout(layout="myLayout", view="alpha/bravo/viewFile")
解析alpha
为模块名称而不是包名称,即使代码执行是在包而不是模块中。
直接运行处理程序或通过模块调用处理程序时,如何使路径分辨率保持一致runEvent
?
我在 CB google 组上发布了这个,但后来认为最好在这里问。
这里的工作示例:https ://github.com/jinglesthula/cbModuleExample
如果您运行安装(我 .gitignored 冷箱文件夹),然后cd
进入该/app
文件夹,server start --rewritesEnable
您可以访问http://127.0.0.1:<whatever port>/example/admin/test/ajax
以查看它的运行情况。
从例子:
/app/modules_app/example/handlers/admin/test.cfc -> ajax()
来电runEvent("admin.test.ajax")
/app/handlers/admin/test.cfc -> ajax()
调用`renderLayout(layout = "layout.div", view = "admin/test/ajax")
"admin/test/ajax"
通常解析为/app/views/admin/test/ajax.cfm
,但在这种情况下,它解析为/app/modules_app/admin/views/test/ajax.cfm
.
您可以注释掉第 18 行并取消注释第 19 行/modules_app/example/admin/handlers/test.cfc
以查看解决方法。
您也可以/admin/test/ajaxDirect
在浏览器中查看renderLayout()
非工作示例中的调用是否正确。
注意:我this.viewParentLookup = true
的 ModuleConfig.cfc 中有。我尝试重新加载模块并将其设置为 false,我得到了相同的结果。