在cf9 / Coldbox中重新生成url

时间:2010-06-04 17:31:40

标签: url coldfusion url-routing coldfusion-9 coldbox

您好我想知道在使用event.buildLink时在coldbox / CF9中加载任何页面时是否有办法重新生成URL?

目前,当使用event.buildlink时,我得到http://cawksd05.codandev.local:8080/entries/editor

但是正确的网址应该添加/index.cfm,如下所示:

/index.cfm/entries/editor

有没有办法设置一次这个设置在哪里,因为我很困惑在哪里为我的所有页面设置这个,以便在我执行event.Buildlink时,/ index.cfm会添加url前缀。< / p>

由于 Faheem

 //常规属性  setUniqueURLS(假);  setAutoReload(假);

//基本网址  if(len(getSetting('AppMapping'))lte 1){   setBaseURL( “http://#cgi.HTTP_HOST#/index.cfm”);  }  其他{   setBaseURL( “http://#cgi.HTTP_HOST#/#getSetting( 'AppMapping')#/ index.cfm”);  }

//您的应用程序路由  formatConstraints = {format =“(xml | json)”};

addRoute(图案= “/ API /:格式/任务/完成”,处理器= “tasksAPI”,动作= “列表”,约束= formatConstraints,完成= TRUE);  addRoute(图案= “/ API /:格式/任务”,处理程序= “tasksAPI”,动作= “列表”,约束= formatConstraints);  addRoute(图案= “/ API /?格式”,处理程序= “tasksAPI”,动作= “无效”);

addRoute(图案= “/任务/列表/:状态如何?”,处理程序= “任务”,动作= “索引”);  addRoute(模式= “:处理程序/:动作?”);

2 个答案:

答案 0 :(得分:4)

不,setnextevent是应该使用的3.0中唯一的方法,其他的setnextRoute和relocate()现在已被弃用。

如果您对Route.cfm进行了更改,请确保重新初始化应用程序以使更改生效。

index.cfm?fwreinit = 1

如果做出更改,他们通常会忘记重新启动应用程序。

答案 1 :(得分:1)

听起来你需要在/config/Routes.cfm文件中设置baseURL

// Base URL
if( len(getSetting('AppMapping') ) lte 1){
    setBaseURL("http://#cgi.HTTP_HOST#/index.cfm");
}
else{
    setBaseURL("http://#cgi.HTTP_HOST#/#getSetting('AppMapping')#/index.cfm");
}

VS

// Base URL
if( len(getSetting('AppMapping') ) lte 1){
    setBaseURL("http://#cgi.HTTP_HOST#/");
}
else{
    setBaseURL("http://#cgi.HTTP_HOST#/#getSetting('AppMapping')#/");
}