Mojolicious初学(十)

一、静态文件static files

和template类似,我们需要引入css、js以及图片等前端静态文件。这是Mojolicious必不可少的功能:

use Mojolicious::Lite;

app->start;
__DATA__                            #无需其他额外的设置,我们直接在DATA块内编写想要的静态文件即可

@@ something.js
alert('hello!');

@@ test.txt (base64)
dGVzdCAxMjMKbGFsYWxh

当然了,对于我们来说DATA中编写静态文件并不常用。常用的是引入向jquery.js等js第三方框架,以及一些图片等。

Mojolicious为我们提供了一个文件夹——public,文件夹与我们的mojolicious脚本位于同一目录下。

当浏览器发送请求需要静态文件时,比如url “www.lwc365.top/jquery.js”,会自动的前往public路径下查找jquery.js文件。

二、扩展templates

什么是扩展templates?说白了,当我们编写复杂的html时,我们不会选择在mojolicious脚本DATA区域写template模板,这样做会使得我们的单文件脚本变得复杂、不可读。

类似于public,Mojolicious提供了templates文件夹,此文件夹同样与脚本在同一目录下。这样我们可以单独放置templates文件夹:

$ mkdir -p templates/foo                               #创建templates文件夹,之后在创建一个foo子文件夹
$ echo 'Hello World!' > templates/foo/bar.html.ep      #在foo子文件夹下写一个模板

之后,我们可以像DATA区域一样的调用:

use Mojolicious::Lite -signatures;

# Render template "templates/foo/bar.html.ep"
any '/external' => sub ($c) {
  $c->render(template => 'foo/bar');             #template键的值,要体现出模板在子目录下。
};

app->start;

 

 

标签