2012-11-01 28 views
2
use Mojolicious::Lite; 

    # /with_layout 
    get '/a' => sub { my $self = shift;} ; 
    get '/b' => sub { my $self = shift;} ; 
    get '/c' => sub { my $self = shift;}; 

app->start; 
__DATA__ 

@@ a.html.ep 
    <!DOCTYPE html> 
    <html> 
    <head><title><%= title %></title></head> 
    <body><%= content %></body> 
<table border="1"> 
<tr> 
<td>row 1, cell 1</td> 
<td>row 1, cell 2</td> 
</tr> 
<tr> 
<td>row 2, cell 1</td> 
<td>row 2, cell 2</td> 
</tr> 
</table> 
    </html> 

@@ b.html.ep 
    <!DOCTYPE html> 
    <html> 
    <head><title><%= title %></title></head> 
    <body><%= content %></body> 
<table border="1"> 
<tr> 
<td>row 1, cell 1</td> 
<td>row 1, cell 2</td> 
</tr> 
<tr> 
<td>row 2, cell 1</td> 
<td>row 2, cell 2</td> 
</tr> 
</table> 
    </html> 


@@ c.html.ep 
    <!DOCTYPE html> 
    <html> 
    <head><title><%= title %></title></head> 
    <body><%= content %></body> 
    <table border="1"> 
<tr> 
<td>row 1, cell 1</td> 
<td>row 1, cell 2</td> 
</tr> 
<tr> 
<td>row 2, cell 1</td> 
<td>row 2, cell 2</td> 
</tr> 
</table> 
    </html> 

我真的很感動如何使用mojolocious lite應用程序的通用模板?

<table border="1"> 
    <tr> 
    <td>row 1, cell 1</td> 
    <td>row 1, cell 2</td> 
    </tr> 
    <tr> 
    <td>row 2, cell 1</td> 
    <td>row 2, cell 2</td> 
    </tr> 
    </table> 

,並使用所有的HTML,而添加到每個HTML

回答

3

使用layout模板功能。

use Mojolicious::Lite; 

# /with_layout 
get '/a' => sub { my $self = shift;}; 
get '/b' => sub { my $self = shift;}; 
get '/c' => sub { my $self = shift;}; 

app->start; 
__DATA__ 

@@ a.html.ep 
% title 'A'; 
% layout 'template'; 
Content for 'A' 

@@ b.html.ep 
% title 'B'; 
% layout 'template'; 
Content for 'B' 

@@ c.html.ep 
% title 'C'; 
% layout 'template'; 
Content for 'C' 

@@ layouts/template.html.ep 
<!DOCTYPE html> 
<html> 
    <head><title><%= title %></title></head> 
    <body><%= content %></body> 
    <table border="1"> 
    <tr> 
    <td>row 1, cell 1</td> 
    <td>row 1, cell 2</td> 
    </tr> 
    <tr> 
    <td>row 2, cell 1</td> 
    <td>row 2, cell 2</td> 
    </tr> 
</table> 
</html>