Joel Berger 发布了这个小程序来启动一个 web 服务器来提供本地文件,它工作得很好:
use Mojolicious::Lite;
@ARGV = qw(daemon);
use Cwd;
app->static->paths->[0] = getcwd;
any '/' => sub {
shift->render_static('index.html');
};
app->start;
我预先填充了命令行,@ARGV
因为我忘了这样做。当它启动时,它会给出一条消息,告诉你它选择了哪个端口,如果可以的话,使用 3000:
$ perl ~/bin/mojo_cwd
[Fri Mar 29 19:14:09 2013] [info] Listening at "http://*:3000".
Server available at http://127.0.0.1:3000.
我想以编程方式获取该端口,以便测试套件知道在哪里寻找它,而且我不想通过报废输出来做到这一点。我对此的任何实验都没有用,我认为我总是走错方向。似乎它在开始之前不会选择端口,一旦我调用start
,它就结束了。
我也不想自己指定端口。
这不是一件紧急的事情。我有一个使用另一个简单的 HTTP 框架的当前解决方案,但如果可以的话,我一直在考虑用 Mojo 替换其中的大部分内容。由于旧的东西仍然有效,这真的只是一件好事,而不是我的方式。