=for HTML =head1 NAME Mojolicious::Plugin::JSUrlFor - Mojolicious "url_for" helper for javascript =head1 SYNOPSIS # Mojolicious $self->plugin('JSUrlFor'); # Mojolicious::Lite plugin 'JSUrlFor'; # In your application my $r = $self->routes; $r->get('/messages/:message_id')->to('messages#show')->name('messages_show'); # In your layout template <%= js_url_for%> # In your javascript $.getJSON( url_for( 'messages_show', {message_id: 123} ), params, function() { ... } ) # Instead of helper you can use generator for generating static file ./your_app.pl generate js_url_for public/static/url_for.js # And then in your layout template # Or let it generate on the fly # Can be useful if you have only RESTful API without templates and you want to provide routes names for UI $self->plugin('JSUrlFor', {route => '/javascript/url.js'}); =head1 DESCRIPTION I like Mojolicious routes. And one feature that I like most is that you can name your routes. So, you can change your routes without rewriting a single line of dependent code. Of course this works if you use route names in all of your code. You can use route name everywhere except... javascript. But with L you can use route names really everywhere. This plugin support mounted (see L ) apps too. L contains only one helper that adds C function to your client side javascript. =head1 HELPERS =head2 C In templates C<< <%= js_url_for %> >> This helper will add C function to your client side javascript. In I mode this helper will cache generated code for javascript I function =head1 CONFIG OPTIONS =head2 C Simulate static javascript file. It can be useful if you have RESTful API and want to provide js file with routes. =head1 GENERATORS =head2 C ./your_app.pl generate js_url_for $relative_file_name This command will create I<$relative_file_name> file with the same content as C helper creates. Then you should include this file into your layout template with I