Джоэл Бергер опубликовал эту небольшую программу для начала веб-сервер для обслуживания локальных файлов, и он прекрасно работает:
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, если смогу. Поскольку старые вещи все еще работают, это действительно то, что приятно иметь, а не что-то на моем пути.
Can't create listen socket: Address already in use at ...
- это показывает, что по умолчанию используется единственный пробный порт - person Tudor Constantin   schedule 02.04.2013