在 FW/1 中使用通配符路由匹配
Using wildcard route matching in FW/1
我正在尝试在 FW/1 v 3.5 中的路由上使用通配符匹配。
Application.cfc
component extends="framework.one" {
this.name= "Wildcard7";
variables.framework = {
home = 'main.home',
action = 'fuseaction',
baseURL = 'useCgiScriptName',
trace = isDebugMode()
};
variables.framework.routes = [
{ "main/home" = "main/home"},
{ "*" = "main/404"}
];
}
当我 运行 页面时,没有指定操作,我得到 main/404 页面而不是 main/home
** FW/1 痕迹**
如何只在无效页面上将 main/404 变为 运行?
When I run the page, without specifying an action, I get the main/404 page instead of main/home
我假设您正在尝试像这样访问页面 - your.domain/index.cfm/main
。 请注意缺少 home
操作。
根据您的路线,您的第一条路线是说如果提供的路径等于 "main/home",则指向视图 main/home
。如果 main.cfc
控制器中有 home
的操作,那么在呈现视图之前将是 运行。
停止操作 home
将不会匹配您当前的任何路线;导致您的通配符捕获它。您需要通过包含另一条路线来处理它,例如 {"main" = "main"}
.
更新:
要从 your.domain/index.cfm
访问 main/home
,您可以尝试传递 {"/" = "main/home"}
的路由。我建议将其置于您的通配符之上并置于任何其他路线之下,以避免任何异常匹配。
我正在尝试在 FW/1 v 3.5 中的路由上使用通配符匹配。
Application.cfc
component extends="framework.one" {
this.name= "Wildcard7";
variables.framework = {
home = 'main.home',
action = 'fuseaction',
baseURL = 'useCgiScriptName',
trace = isDebugMode()
};
variables.framework.routes = [
{ "main/home" = "main/home"},
{ "*" = "main/404"}
];
}
当我 运行 页面时,没有指定操作,我得到 main/404 页面而不是 main/home
** FW/1 痕迹**
如何只在无效页面上将 main/404 变为 运行?
When I run the page, without specifying an action, I get the main/404 page instead of main/home
我假设您正在尝试像这样访问页面 - your.domain/index.cfm/main
。 请注意缺少 home
操作。
根据您的路线,您的第一条路线是说如果提供的路径等于 "main/home",则指向视图 main/home
。如果 main.cfc
控制器中有 home
的操作,那么在呈现视图之前将是 运行。
停止操作 home
将不会匹配您当前的任何路线;导致您的通配符捕获它。您需要通过包含另一条路线来处理它,例如 {"main" = "main"}
.
更新:
要从 your.domain/index.cfm
访问 main/home
,您可以尝试传递 {"/" = "main/home"}
的路由。我建议将其置于您的通配符之上并置于任何其他路线之下,以避免任何异常匹配。