http://www.perlmonks.org?node_id=1059100


in reply to Re: Plack middlewares not loaded from Dancer config
in thread [Solved] Plack middlewares not loaded from Dancer config

Hey, thank you for your input!

I have just done additional tests:

I have created and alternative layout with a different title, and when I change the name of the layout in config.yml, and then stop and restart plackup, the title is changed. So, I am sure that the configuration is loaded.

I have stopped loading ANY middleware from bin/app.pl. And I load only one middleware from the config.yml file, a simple one:

plack_middlewares: - - ETag
Then I checked whether it worked, by doing a curl, and seeing if I got any ETag header (as presented here: http://advent.perldancer.org/2011/16). It didn't work.

Plack, Plack::Middleware and Plack::Middleware::ETag are installed.

Here is what I get in logs/development.log:

[HabitLab:31431] core @2013-10-21 12:39:17> looking for get / in (eva +l 231) l. 2 [HabitLab:31431] core @2013-10-21 12:39:17> Entering hook core.app.be +fore_request in /home/user/.perlbrew/libs/perl-5.16.3@devel/lib/perl5 +/Dancer2/Core/Dispatcher.pm l. 77 [HabitLab:31431] core @2013-10-21 12:39:17> Entering hook core.app.af +ter_request in /home/user/.perlbrew/libs/perl-5.16.3@devel/lib/perl5/ +Dancer2/Core/Dispatcher.pm l. 132
And the page gets loaded as it should. Simply, the plack middlewares don't work... while if I load them from bin/app.pl, then it all works.

It is annoying for loading different middlewares in development or production: I have to use an if/else in app.pl... not really elegant nor nice to maintain.

Any idea of how I could investigate further?