NAME
Mojolicious::Types - MIME types
SYNOPSIS
use Mojolicious::Types;
my $types = Mojolicious::Types->new;
$types->type(foo => 'text/foo');
say $types->type('foo');DESCRIPTION
Mojolicious::Types manages MIME types for 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     -> font/woff
woff2    -> font/woff2
xml      -> application/xml,text/xml
zip      -> application/zipThe most common ones are already defined.
ATTRIBUTES
Mojolicious::Types implements the following attributes.
mapping
my $mapping = $types->mapping;
$types      = $types->mapping({png => ['image/png']});MIME type mapping.
METHODS
Mojolicious::Types inherits all methods from Mojo::Base and implements the following new ones.
content_type
$types->content_type(Mojolicious::Controller->new, {ext => 'json'});Detect MIME type for Mojolicious::Controller object unless a Content-Type response header has already been set, defaults to using application/octet-stream if no better alternative could be found. These options are currently available:
- ext
- 
ext => 'json'File extension to get MIME type for. 
- file
- 
file => 'foo/bar.png'File path to get MIME type for. 
detect
my $exts = $types->detect('text/html, application/json;q=9');Detect file extensions from Accept header value.
# List detected extensions prioritized
say for @{$types->detect('application/json, text/xml;q=0.1', 1)};file_type
my $type = $types->file_type('foo/bar.png');Get MIME type for file path.
type
my $type = $types->type('png');
$types   = $types->type(png => 'image/png');
$types   = $types->type(json => ['application/json', 'text/x-json']);Get or set MIME types for file extension, alternatives are only used for detection.