You hit the nail on the head! Thanks a lot! I was looking for answers at the wrong place =^_^=
I will now work on the pull request and the test ;-) Thanks! El dimecres, 18 gener de 2017 14:46:52 UTC+1, Dotan Dimet va escriure: > > Sorry, I should have looked at the code in the layout template. > > > https://github.com/jberger/Mojolicious-Plugin-RevealJS/blob/master/lib/Mojolicious/Plugin/RevealJS/files/templates/layouts/revealjs.html.ep > > It seems the links to the revealjs static files (css, etc.) are relative > to the current route: > > <link rel="stylesheet" href="revealjs/css/reveal.css"> > > So if your presentation is at /reveal/foo, it will look for > /reveal/revealjs/css/reveal.css, and not find it. > > I thought it was using absolute paths (i.e "/revealjs/css/reveal.css" > etc.), which would avoid this issue. > > You could send Joel a bug report or a pull request for a change > (preferably adding a test for a nested route, like you have in your app). > > - Dotan > > On 17/01/17 01:50, mimosinnet wrote: > > El dilluns, 16 gener de 2017 14:33:50 UTC+1, Dotan Dimet va escriure: >> >> My guess is that your route ('/revealjs/:id') interferes with requests >> for the static Reveal.js files bundled in the plugin, >> which are served from /revealjs/... >> > ... > >> So, try renaming your route and see if things improve? >> > > Thanks very much for the suggestion. I have renamed the route to: > > $r->get('/reveal/:id')->to('presenta#reveal'); > > Nevertheless, I have the same issue. These are the paths that cannot be > found when rendering the page: > > GET http://127.0.0.1:3000/reveal/revealjs/js/reveal.js > 01:53 GET http://127.0.0.1:3000/reveal/revealjs/lib/js/head.min.js > 01:22 GET http://127.0.0.1:3000/reveal/revealjs/lib/css/zenburn.css > 01:19 GET http://127.0.0.1:3000/reveal/revealjs/css/theme/black.css > 01:17 GET http://127.0.0.1:3000/reveal/revealjs/css/reveal.css > 01:30 GET http://127.0.0.1:3000/reveal/revealjs/css/print/paper.css > 01:53 GET http://127.0.0.1:3000/reveal/revealjs/lib/js/head.min.js > 01:54 GET http://127.0.0.1:3000/reveal/revealjs/js/reveal.js > > If I try with Mojolicious::Lite, it fins the paths, which are: > /revealjs/lib/js/head.min.js > /revealjs/lib/css/zenburn.css > /revealjs/css/theme/black.css > /revealjs/css/reveal.css > ... > > Cheers! > > On 16/01/17 10:51, mimosinnet wrote: >> >> I am having trouble using Mojolicious::Plugin::RevealJS. It works it a >> Lite app, but I fail to use it in a full app and I am unable to find where >> is the issue. >> >> I start the plugin with: >> >> sub startup { >>> >>> my $self = shift; >>> >>> $self->plugin('RevealJS'); >>> ... >>> my $r = $self->routes; >>> .... >>> $r->get('/revealjs/:id')->to('presenta#revealjs'); >>> ... >>> } >>> >> >> In the controller, I start the plugin by using the revealjs layout: >> sub revealjs { >> >> my $self = shift; >> my $id_pres = $self->stash('id'); >> $self->render( >> >> layout => 'revealjs', >> template => 'mytalk', >> id_pres => $id_pres >> >> >> ); >> } >> >> >> The app shows the content of the template, adds code from the plugin, but >> fails to find the revealjs files when rendering the layout. These are the >> paths that cannot be found when rendering the page: >> GET http://127.0.0.1:3000/revealjs/revealjs/css/reveal.css >> 01:53 GET http://127.0.0.1:3000/revealjs/revealjs/lib/js/head.min.js >> 01:22 GET http://127.0.0.1:3000/revealjs/revealjs/lib/css/zenburn.css >> 01:19 GET http://127.0.0.1:3000/revealjs/revealjs/css/theme/black.css >> 01:54 GET http://127.0.0.1:3000/revealjs/revealjs/js/reveal.js >> 01:30 GET http://127.0.0.1:3000/revealjs/revealjs/css/print/paper.css >> 01:53 GET http://127.0.0.1:3000/revealjs/revealjs/lib/js/head.min.js >> 01:54 GET http://127.0.0.1:3000/revealjs/revealjs/js/reveal.js >> 01:72 Uncaught ReferenceError: Reveal is not defined >> at 01:72 >> >> As the app calls the plugin but fails to find the revealjs files, I guess >> the issue could be in how the code >> <https://github.com/jberger/Mojolicious-Plugin-RevealJS> builds the >> paths, and I imagine this is the relevant part: >> package Mojolicious::Plugin::RevealJS; >> ... >> use Mojo::Home; >> ... >> use File::Basename 'dirname'; >> use File::Spec::Functions qw/rel2abs catdir/; >> use File::ShareDir 'dist_dir'; >> >> has home => sub { >> my $checkout = catdir(dirname(rel2abs(__FILE__)), qw/RevealJS files/); >> Mojo::Home->new(-d $checkout ? $checkout : dist_dir( >> 'Mojolicious-Plugin-RevealJS')); >> }; >> >> sub register { >> my ($plugin, $app, $conf) = @_; >> my $home = $plugin->home; >> push @{ $app->static->paths }, $home->rel_dir('public'); >> push @{ $app->renderer->paths }, $home->rel_dir('templates'); >> >> >> $app->defaults('revealjs.init' => { >> controls => \1, >> progress => \1, >> history => \1, >> center => \1, >> transition => 'slide', #none/fade/slide/convex/concave/zoom >> }); >> >> >> $app->helper('include_code' => \&_include_code); >> $app->helper('revealjs.export' => \&_export); >> } >> >> I would appreciate any hints! >> >> Cheers! >> -- >> You received this message because you are subscribed to the Google Groups >> "Mojolicious" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at https://groups.google.com/group/mojolicious. >> For more options, visit https://groups.google.com/d/optout. >> >> >> -- > You received this message because you are subscribed to the Google Groups > "Mojolicious" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > Visit this group at https://groups.google.com/group/mojolicious. > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/mojolicious. For more options, visit https://groups.google.com/d/optout.
