参加聚会已经晚了,但这周我在玩 FW/1,我在控制器和实时更新方面遇到了问题。我现在有以下代码来模拟身份验证。
应用程序.cfc
public function setupRequest() {
controller("user.checkAuthorization");
}
用户.cfc
function checkAuthorization(any rc) {
rc.authenticated = true;
}
在我看来,我根据 rc.authenticated 切换某些内容。所有这些都工作正常,但如果我将 rc.authenticated 从 true 切换为 false,屏幕上不会发生任何变化,直到我重置应用程序。然后我在屏幕上看到更新的更改。
我不确定为什么在不重新初始化应用程序的情况下无法在页面上进行更改。这是 FW/1 中的东西吗?卢西有事吗?命令框等?
控制器由框架缓存,因此在重新加载缓存之前,任何更改都不会反映出来。您可以通过在 URL 中添加
?reload=true
来临时执行此操作。
如果您处于开发环境中并且经常更改控制器,您可以向 Application.cfc 中的
setupRequest()
方法添加一些逻辑,以清除每个请求的控制器缓存:
public void function setupRequest(){
if( isDevEnvironment ) // use your own way of determining this
application[ variables.framework.applicationKey ].cache.controllers = {} // clear the controller cache on every request
}
或者你可以这样做:
application.cfc
variables.framework.environments = {
dev = {
reloadApplicationOnEveryRequest = true,
…
},
prod = {
…
}
}