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>

我真的很感动

 <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

4

1 回答 1

3

使用布局模板功能。

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>
于 2012-11-01T17:30:12.540 回答