The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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
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
webm     -> video/webm
woff     -> application/font-woff
xml      -> application/xml,text/xml
zip      -> application/zip

The most common ones are already defined.

ATTRIBUTES

Mojolicious::Types implements the following attributes.

types

my $map = $types->types;
$types  = $types->types({png => 'image/png'});

List of MIME types.

METHODS

Mojolicious::Types inherits all methods from Mojo::Base and implements the following ones.

detect

my $exts = $types->detect('application/json;q=9');

Detect file extensions from Accept header value. Unspecific values that contain more than one MIME type are currently ignored, since browsers often don't really know what they actually want.

# List detected extensions
say for @{$types->detect('application/json')};

type

my $type = $types->type('png');
$types   = $types->type(png => 'image/png');
$types   = $types->type(json => [qw(application/json text/x-json)]);

Get or set MIME types for file extension, alternatives are only used for detection.

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.