---
name: "Mojolicious::Types"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "9.39+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojolicious::Types"
---

# Mojolicious::Types(3pm)

MIME types

## 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
  ttf      -> font/ttf
  txt      -> text/plain;charset=UTF-8
  webm     -> video/webm
  woff     -> font/woff
  woff2    -> font/woff2
  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 `"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.

## SEE ALSO

Mojolicious, Mojolicious::Guides, \<https://mojolicious.org\>.
