[dancer-users] Question about Perl Dancer Framework
Sawyer X
xsawyerx at gmail.com
Sat Sep 6 23:37:35 BST 2014
Hi Jean-Marie.
Welcome! :)
Let's go over the code you showed.
> get '/index' => sub { template 'index' };
That will declare a path "/index" for a GET request which will render a
template called (if you're using the default templating framework) "index.tt".
So far so good.
> get '/' => sub { template 'login' };
When someone goes to the main page, render 'login.tt'.
> get 'test' => sub {
> template 'test';
> };
You probably want to change this to "get '/test'" instead of "get 'test'".
Paths should begin with "/", almost always.
> #return '<script> document.location("./views/test.tt
");</script>';
In this case, you want to simply use "redirect" keyword which would do this
for you:
get '/test' => sub {
redirect "/"; # redirect to main page
};
In your example, you're trying to redirect to "./views/test.tt" which is a
file. HTTP redirects are for *paths*, not *files*.
If you want people who go to "/wrong/place" to go to "/test" which renders
the right template ("test.tt"), you would write this:
get '/wrong/place => sub { redirect '/test' };
get '/test => sub { template 'test'; }
Does this help?
S.
On Mon, Sep 1, 2014 at 6:45 PM, jean-marie.bourbon at armaturetech.com <
jean-marie.bourbon at armaturetech.com> wrote:
>
>
> On 09/01/2014 03:56 AM, jean-marie.bourbon at armaturetech.com wrote:
> > Hi guys!
> >
> > I recently tried to build my own web application using Dancer but I'm a
> basic perl developer and I have any interrogations about this framework.
> >
> > I've first tried to build a login page based on your "navbar_login"
> example.
> > Once logged in I try to call another page named "test" but it seems to
> not work (I don't know how to call my page and how Dancer work exactly ..
> to be honest :-( . )
> > :
> > I have a login.pm module, main.tt (in views/layout/) index.tt and
> test.tt in views.
> > Im my login.pm I have declared my routes as following:
> >
> > get '/index' => sub { template 'index' };
> >
> > get '/' => sub { template 'login' };
> >
> > get 'test' => sub {
> > template 'test';
> > };
> >
> > So, once logged in I try (and fail) to call my page like this:
> >
> >
> > elsif($password eq "12345") {
> > #print "ok";
> > #return '<script> document.location("./views/test.tt
> ");</script>';
> > #return template 'examples/photo_carousel';# 'index';
> > #my @animals = qw/dogs cats camels mooses vogons/;
> > return template 'test' => {
> > show => "launching test.tt",
> > };
> > #session $username => params->{$username};
> > #redirect params ->{'index'};
> >
> > #show_
> > }
> >
> > Fail also with redirect parameter .. But why and how to call my test
> page ?
> > I don't understand why it doesn't work, can you explain me please ?
> >
> > Thanks a lot !
> >
> _______________________________________________
> dancer-users mailing list
> dancer-users at dancer.pm
> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.preshweb.co.uk/pipermail/dancer-users/attachments/20140907/5b92406e/attachment.html>
More information about the dancer-users
mailing list