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 -> 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.
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 the MIME type for the txt
extension if no better alternative could be found. Note that this method is EXPERIMENTAL and might change without warning!
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. Note that this method is EXPERIMENTAL and might change without warning!
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.