我正在练习 Perl 和 PSGI/Plack。只是尝试简单的 PSGI 示例应用程序:
应用程序.psgi
#!/usr/bin/perl
my $counter = 0;
my $app = sub {
my $env = shift;
my $path = $env->{PATH_INFO} || $env->{REQUEST_URI};
$counter++;
my $content = "Hellow world.\nCounter=$counter\nPath: $path\n";
return [ 200, [ 'Content-type', 'text/plain' ], [ $content ] ]
};
然后运行它:
plackup app.psgi
如果我将浏览器指向 /news/world 之类的任何路径:
http://localhost:5000/new/world
没关系,我将 $path 变量设置为 /news/world,然后我将处理 cgi 响应。
如果我指向 logo.png 之类的静态文件,则会出现问题
http://localhost:5000/logo.png
我还将 $path 变量设置为 /logo.png
问题是,为什么 plakup 服务器不自动提供静态图像文件 logo.png。
我必须手动执行此操作吗?如果是这样,这是否意味着在每次请求时我都必须先 ping 文件系统,检查是否 -f $path.
这意味着我正在构建一个完整的服务器处理程序,而不仅仅是我的脚本处理程序。我不明白什么。