Plack入門:Plackで静的ファイル配信をする方法
準備:Plackをインストール・起動する
↓こちらの記事を読んで、Plackを起動するところまでやってみてください。Plack入門:Plackでウェブサーバを起動してhello worldするまで
仕様を決める
あなたのサーバのドメインが http://yourdomain.com だと仮定します。
静的配信
http://yourdomain.com:5000/static/hello.htmlでアクセスすると、サーバ内の/tmp/static/hello.html が表示されるようにします。
動的配信
/static/以外のパスへアクセスした場合、すなわち下記のようなURLへアクセスした場合は、前回の記事で紹介した hello world が表示されるようにします。
http://yourdomain.com:5000/
http://yourdomain.com:5000/hoge/fuga
psgiファイルを作る
下記のコードを static.psgi という名前でホームディレクトリ ~/ に保存します。
(ファイル名や保存場所は何でも構いません)
#!/usr/bin/env perl
use strict;
use warnings;
use Plack::Builder;
my $app = sub {
my $env = shift;
return [
200,
[ 'Content-Type' => 'text/plain' ],
[ "Hello World" ],
];
};
builder {
enable "Plack::Middleware::Static", path => qr{^/static}, root => '/tmp';
$app;
};
これにより/static/ というURLが、サーバ上の/tmp/static/ と紐付けられます。
静的ファイルを作る
下記ファイルを、/tmp/static/hello.html に保存します。(/tmp/hello.htmlではないのでご注意を。私はこれで2時間ハマりました。)
plackupコマンドでサーバを起動する
起動します。
$ plackup ~/static.psgi
ブラウザからアクセスして確認します。
おめでとうございます!
成功したら、ファイルシステム上の場所を変更したり、画像やCSSファイルを配信したりしてみましょう。
カテゴリ:
Perl