我在文件夹/ wwwRoot / beta /中有一个application.cfc。它们在根目录中有一个application.cfm,用于设置一堆会话变量。当我点击beta文件夹中的一个页面以转储所有会话变量时,我看不到application.cfm中定义的那些。
我修改了我的application.cfc以摆脱'onSessionStart'中的所有代码。这没有用。我创建了一个新的application.cfm,其中包含一些我需要的应用程序varibales。这也没有帮助。
有人有什么建议吗?
<cffunction name="onSessionStart" returnType="void" output="false" hint="Fires ONLY ONCE when session first created and not when session renewed/restarted.">
<cfscript>
session.startTime = Now();
</cfscript>
<cfreturn>
</cffunction>
我想我需要一些如何复制现有的会话变量。
我在上面的文件夹上创建了一个简单的测试页面。
<cfset session.mynum= 1111>
<a href="beta/index.cfm">clicky</a>
当我点击链接时,会话转储不包含myNum。 application.cfc中的东西搞砸了。
答案 0 :(得分:0)
Application.cfc不会受父文件夹中的Application.cfm的影响。您应该将Application.cfm替换为Application.cfc,然后在子文件夹中扩展父Application.cfc。这就是ColdFusion中Application框架的运行方式。
也就是说,如果你不能用Application.cfc替换Application.cfm,那么你可以将会话变量定义分解为一个单独的文件然后将其包含到Application.cfm中并在Application.cfc中重复包含它。在子文件夹中。但是,您的Application.cfm中可能还有其他内容也不会包含在子文件夹的Application.cfc中,因此这不是一个很好的解决方案。最好的解决方案是完全删除Application.cfm,用root中的适当Application.cfc替换它,然后根据需要从任何子文件夹中扩展它。
答案 1 :(得分:0)
<cfscript>
this.name = "myApp";
</cfscipt>
应用程序的名称必须与application.cfm中标记中使用的名称相同。一旦名称发生变化,我就可以获得会话变量。
感谢