我正在尝试在我的 Mojolicious 应用程序中组合一个维护页面,只要服务器上存在文件或数据库条目,就会显示我的所有用户。
我知道我可以在启动时检查这个文件或条目,如果它在那里添加到我的“catch all”路线中。但是我不确定如何动态执行此操作?每当我想进行维护时,我都不想重新启动后端。
有没有办法从钩子中添加和删除路由?例如使用前调度挂钩来监视文件/数据库条目,如果它存在修改路由?
我试过这个,但我似乎无法从挂钩函数访问路由,只能在启动函数中访问。
谢谢你。
我正在尝试在我的 Mojolicious 应用程序中组合一个维护页面,只要服务器上存在文件或数据库条目,就会显示我的所有用户。
我知道我可以在启动时检查这个文件或条目,如果它在那里添加到我的“catch all”路线中。但是我不确定如何动态执行此操作?每当我想进行维护时,我都不想重新启动后端。
有没有办法从钩子中添加和删除路由?例如使用前调度挂钩来监视文件/数据库条目,如果它存在修改路由?
我试过这个,但我似乎无法从挂钩函数访问路由,只能在启动函数中访问。
谢谢你。
在第一个请求得到处理之前,路由器是动态的,之后,路由器不能更改路由(源)。也就是说,您是否可以不一般地声明路线,而在该条件存在之前禁止任何访问?
#!/usr/bin/env perl
use Mojolicious::Lite;
any '/' => sub { shift->render( text => 'Hello World' ) };
under sub {
unless (-e 'myfile') {
shift->render_not_found;
return 0;
}
return 1;
};
any '/protected' => sub { shift->render( text => 'I am safe' ) };
app->start;