summary refs log tree commit diff
path: root/lib/Dancer/Template/Xslate.pm
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/Dancer/Template/Xslate.pm10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Dancer/Template/Xslate.pm b/lib/Dancer/Template/Xslate.pm
index 939bbb8..50f2286 100644
--- a/lib/Dancer/Template/Xslate.pm
+++ b/lib/Dancer/Template/Xslate.pm
@@ -6,6 +6,7 @@ use strict;
 use warnings;
 
 use Text::Xslate;
+use Dancer::Config 'setting';
 
 use base 'Dancer::Template::Abstract';
 
@@ -20,11 +21,20 @@ sub init {
         %{$self->config},
     );
 
+    ## set default path for header/footer etc.
+    $args{path} ||= [];
+    my $view_dir = setting('views');
+    push @{$args{path}}, $view_dir unless grep { $_ eq $view_dir } @{$args{path}};
+    
     $_engine = Text::Xslate->new(%args);
 }
 
 sub render {
     my ($self, $template, $tokens) = @_;
+    
+    # absolute filename will never work under Windows even we hard set path as ['/']
+    my $view_dir = setting('views');
+    $template =~ s/^\Q$view_dir\E//;
 
     my $content = eval {
         $_engine->render($template, $tokens)