简介
use Mojolicious::Types;
my $types = Mojolicious::Types->new;
$types->type(foo => 'text/foo');
say $types->type('foo');
Mojolicious::Types管理着Mojolicious中的所有MIME类型。
下面的代码段列出了常见的类型,这些在Mojolicious中已经定义了。
appcache -> text/cache-manifest
atom -> application/atom+xml
bin -> application/octet-stream
css -> text/css
gif -> image/gif
gz -> application/x-gzip
htm -> text/html
html -> text/html;charset=UTF-8
ico -> image/x-icon
jpeg -> image/jpeg
jpg -> image/jpeg
js -> application/javascript
json -> application/json;charset=UTF-8
mp3 -> audio/mpeg
mp4 -> video/mp4
ogg -> audio/ogg
ogv -> video/ogg
pdf -> application/pdf
png -> image/png
rss -> application/rss+xml
svg -> image/svg+xml
txt -> text/plain;charset=UTF-8
webm -> video/webm
woff -> application/font-woff
xml -> application/xml,text/xml
zip -> application/zip
属性
Mojolicious::Types中仅有一个属性mapping。
my $mapping = $types->mapping;
$types = $types->mapping({png => ['image/png']});
mapping 属性中存储的MIME类型的映射。
方法
Mojolicious::Types继承了Mojo::Base中所有的方法,并实现以下方法。
detect
my $exts = $types->detect('application/json;q=9');
my $exts = $types->detect('text/html, application/json;q=9', 1);
从“请求”的Accpet头中检测文件的扩展名,默认情况下禁用包含多个MIME类型的非特定值的优先级。
# List detected extensions prioritized
say for @{$types->detect('application/json, text/xml;q=0.1', 1)};
type
my $type = $types->type('png');
$types = $types->type(png => 'image/png');
$types = $types->type(json => ['application/json', 'text/x-json']);
获取或设置某一扩展名的MIME类型。
a
网友评论