NAME

Mojolicious::Plugin::RelativeUrlFor - relative links in Mojolicious, really.

SYNOPSIS

# Mojolicious
$self->plugin('RelativeUrlFor');

# Mojolicious::Lite
plugin 'RelativeUrlFor';

DESCRIPTION

This Mojolicious plugin adds a new helper to your web app: relative_url_for, together with its short alias rel_url_for. Mojo's URL objects already have a method for this, but to get really relative URLs like ../foo.html you need to add the request url like this:

my $url     = $self->url_to('foo', bar => 'baz');
my $rel_url = $url->to_rel($self->req->url);

The new helper method gets the job done for you:

my $rel_url = $self->rel_url_for('foo', bar => 'baz');

Generated URLs are always relative to the request url.

In templates

Since this is a helper method, it's available in templates after using this plugin:

<%= rel_url_for 'foo', bar => 'baz' %>

Replacing url_for

To use relative URLs in your whole web app without rewriting the code, this plugin can replace Mojolicious' url_for helper for you, which is used by useful things like link_to and form_for. You need to set the replace_url_for option for this:

# Mojolicious
$self->plugin(RelativeUrlFor => { replace_url_for => 1 });

# Mojolicious::Lite
plugin RelativeUrlFor => { replace_url_for => 1 };

REPOSITORY AND ISSUE TRACKING

This plugin lives in github: http://github.com/memowe/mojolicious-plugin-relativeurlfor. You're welcome to use github's issue tracker to report bugs or discuss the code: http://github.com/memowe/mojolicious-plugin-relativeurlfor/issues

AUTHOR AND LICENSE

Copyright Mirko Westermeier <mail@memowe.de>

This software is released under the MIT license. See MIT-LICENSE for details.