2

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,我得到了相同的结果。

4

0 回答 0