我目前在同一服务器上有多个应用程序。这些应用程序位于彼此不同的文件夹中。 在应用程序中,我们动态创建一个名为“ custom”的映射,该映射需要指向每个应用程序的相应“ custom”文件夹。
例如,采用以下三个应用程序及其路径:
app1 c:\ inetpub \ app1 \ custom
app2 c:\ inetpub \ app2 \ custom
app3 c:\ inetpub \ app3 \ custom
我用于一个应用程序的代码(在OnApplicationStart中调用)是:
<cffunction name="CreateAppMappings" output="no" returntype="void">
<cfargument name="absolutePath" required="yes" />
<cfscript>
mappingCustom = "/custom";
serviceFactory = createObject("java","coldfusion.server.ServiceFactory");
mappings = serviceFactory.runtimeService.getMappings();
mappings["/custom"] = "#arguments.absolutePath#\wwwroot";
</cfscript>
<cfreturn />
</cffunction>
问题是,对于一个应用程序,它可以工作。但是对于多个应用程序,它自然会被覆盖,因为映射名称相同。
为了使我们对所有应用程序使用相同的代码库,每个应用程序的此映射名称应保持一致(“自定义”)。 那么我们如何做到这一点呢?
我能想到的唯一方法是使用CFAdmin中的实例管理器将每个应用程序作为一个单独的实例运行。 那是我唯一的选择吗?还是我可能不知道的其他事情?
我正在运行CF2018。
谢谢
答案 0 :(得分:1)
@Paolo Broccardo,根据@RRK建议,您可以按照如下所示在Application.cfc文件中进行设置
component output="false" {
this.name ='Your Apps name';
this.sessionManagement = true;
this.sessiontimeout = createTimeSpan(0,1,0,0);
this.root = getDirectoryFromPath( getCurrentTemplatePath() );
this.mappings[ '/custom' ] = "#this.root#/folder1" ;
.........
.........
}
在这里,我已将其指向我的应用程序的根目录,而/ custom则是用于映射您的自定义目录详细信息。您可以在app.cfc文件本身中将其设置为数字事物。