Mojo::Types

作者: JSON_NULL | 来源:发表于2017-10-14 15:31 被阅读8次

    简介

    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

    相关文章

      网友评论

        本文标题:Mojo::Types

        本文链接:https://www.haomeiwen.com/subject/dznxuxtx.html