针对不同应用程序的不同位置的Coldfusion映射

针对不同应用程序的不同位置的Coldfusion映射,coldfusion,Coldfusion,我目前在同一台服务器上有多个应用程序。这些应用程序彼此位于不同的文件夹中。 在应用程序中,我们动态创建一个名为“custom”的映射,该映射需要指向每个应用程序相应的“custom”文件夹 例如,以以下三个应用程序及其路径为例: app1 c:\inetpub\app1\custom app2 c:\inetpub\app2\custom app3 c:\inetpub\app3\custom 我用于为一个应用程序执行此操作(在OnApplicationStart中调用)的代码是: <cf

我目前在同一台服务器上有多个应用程序。这些应用程序彼此位于不同的文件夹中。 在应用程序中,我们动态创建一个名为“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>   

mappingCustom=“/custom”;
serviceFactory=createObject(“java”、“coldfusion.server.serviceFactory”);
mappings=serviceFactory.runtimeService.getMappings();
映射[“/custom”]=“#参数.绝对路径#\wwwroot”;
问题是,对于一个应用程序,这是可行的。但对于多个应用程序,它会被自然覆盖,因为映射名称是相同的

为了让我们对所有应用程序使用相同的代码库,每个应用程序的映射名称应该一致(“自定义”)。 那么我们如何做到这一点呢

我能想到的唯一方法是将每个应用程序作为单独的实例运行,使用CFAdmin中的实例管理器。 这是我唯一的选择吗?还是有什么我可能不知道的

我正在运行CF2018


感谢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文件本身中的数字

你为什么不使用Ben的文章中提到的特定于应用程序的映射:你为什么不在
application.cfc
中使用
this.mappings
来实现这个目的呢?@RandyJohnson和RRK:谢谢,这看起来很有用。我要去测试一下,很快就回来。@RandyJohnson:这很有效。非常感谢。如果你想把答案贴出来,我会接受的。干杯