Perlテックブログ

Perlゼミのはてな出張所。Perlの新着情報、Perlイベントなどの紹介

任意のファイルを描画する - Mojolicious入門

Mojoliciousで任意のファイルを描画する方法。

publicの下にあれば、reply->staticでOKだけど、任意のファイルってどうやって描画するんでしょうか。

実は、アセットを描画する機能があります。

以下のように書くと、任意のファイルを描画できます。

セキュリティ的に、publicに置いちゃいけないファイルを、描画したい場合に、出番がきます。


my $file = "/var/www/private/foo.jpg";

my $ext;
if ($file =~ /\.(.+)$/) {
$ext = $1;
}

my $content_type = $self->app->types->type($ext);

$self->res->headers->content_type($content_type);
$self->reply->asset(Mojo::Asset::File->new(path => $file));

$selfは、コントローラーです。