1. 页面导入头部
1. EJS模板引擎的使用:
1.1 安装koa-views和ejs:
npm install koa-views --save
npm install ejs --save
1.2 引入koa-views配置中间件:
const views = require('koa-views');
/**引入koa-views配置中间件:指定模板文件的目录,ejs为模板引擎*/
app.use(views(__dirname + '/views', {
map: {html: 'ejs'},
}));
上面的代码中,指定了模板文件的目录为/views,且使用ejs做为模板引擎。
1.3 在Koa中使用ejs:
通过ctx.render('index.html', data:data),向模板文件传递数据:
/*Koa代码*/
router.get('/', async (ctx, next)=>{
let title = 'Hello Joyitsai';
await ctx.render('index', {title: title})
})
1.4 ejs绑定上面发送的数据用等号<%=title%>:
<!--html模板代码-->
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<h3><%=title%></h3>
</body>
</html>
1.5 ejs绑定html语句:
如果从后端传送的数据是html语句,那么要用<%-data%>来解析html语句:
router.get('/', async (ctx, next)=>{
let data = '<h2>这是从后端发来的html语句</h2>'
await ctx.render('index', {data:data})
})
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<!--解析后端发送的html语句用减号-->
<%-data%>
</body>
</html>
1.6 ejs引入模板:
在实际开发中,像导航栏这样公共的页面结构会单独分离成一个模板文件,然后在其他页面中直接导入即可,同样,这里也可以通过<%include header.html%>引入模板页面,模板文件结构如下:
|——app.js
|—— ...
|——views
|——public
|——header.html
|——index.html
其中,header.html为要在index.html中引入的模板,那么引入代码如下:
<!--public/header.html-->
<h2>这是头部信息页面</h2>
<!--index.html-->
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<!--默认views/为主目录了,引入路径不加双引号或单引号-->
<%include public/header.html%>
</body>
</html>
1.7 ejs模板判断语句:
在ejs模板中。if...else..语句要包在<%%>中
/**后端代码*/
router.get('/', async (ctx, next)=>{
let age = 24
await ctx.render('index', { age:age})
})
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<%if(age>20){%>
大于20岁
<%}else{%>
小于等于20岁
<%}%>
</body>
</html>
1.8 ejs模板中的循环数据:
同样,将for(var i=0;i<data.length;i++){}循环包含在<%%>中,示例代码如下:
/**后端代码*/
router.get('/', async (ctx, next)=>{
let datalist = ['joyitsai', 'ming', 'bob'];
await ctx.render('index', {datalist:datalist})
})
<body>
<br/>
<ul>
<%for(var i=0;i<datalist.length;i++){%>
<li><%=datalist[i]%></li>
<%}%>
</ul>
</body>
另外,如果需要在每一个页面都要获取像用户信息这样的数据,每次ctx.render()时都传递这个数据会比较麻烦,解决办法是,通过ctx.state = {data:data}来设置公共数据,绑定在ctx.state上的数据,可以在任何一个页面中直接调用,而不需要通过ctx.render()来传递了。
关于ejs模板引擎的一些常用用法都列举出来了,多多练习就记熟了,其实并没什么难度。
2. art-template模板引擎的使用:
art-template是常用模板引擎中渲染速度最快的,看下面一张测试图:
image.png
art-template支持ejs语法,所以可以完全按照ejs的语法来写。
2.1 安装art-template引擎:
npm install art-template --save
npm install koa-art-template --save
2.2 引入并配置art-template:
const Koa = require('koa');
const render = require('koa-art-template');
const path = require('path');
const app = new Koa();
render(app, {
root: path.join(__dirname, 'views'), //模板文件所在目录
extname: '.html', //声明模板文件的后缀名
debug: process.env.NODE_ENV !== 'production' //是否开启调试模式
})
2.3 art-template模板引擎语法:
基本与ejs的相同,除引入其他模板文件除外,在art-template中,引入其他模板文件的语法如下:
<body>
<!--art-template中引入模板时要加括号和引号-->
<%include('header.html')%>
<h3><%=title%></h3>
</body>
其他语法自行参考官方文档:art-template语法。
2. 页面导入头部怎么弄
可以这样操作,步骤:首先把需要换的照片导入手机Photoshop里,点击橡皮檫调节透明度和大小,插去不需要的部分,保存png格式待用,再把需要换取的图片导入软件可以把头不四周去掉一些,在添加那个保存的png头部,调整位置大小透明度再用仿制图章工具处理一下,OK
3. 导入头文件
能导入通讯录的文件是vcf格式文件。
4. 页面导入头部怎么设置
使用美图秀秀软件的抠图功能可以实现将一张图片上的头像转移到另一张图上的人身上,完成头像替代,具体操作请参照以下步骤。
1、首先在电脑上打开美图秀秀软件,在主页界面找到“打开”选项将需要截取头像的图片导入至软件中。
2、然后在美化编辑栏找到抠图笔选项,依次点击“抠图笔/自动抠图”选项。
3、然后用抠图笔在图片上画线截取头部区域,然后点击完成抠图。如果使用抠图笔不能实现截取效果,可用删除笔进行辅助。
4、然后出现一个页面,点击右上方的【背景设置】选项,选择图片背景打开需要转移头像到的目标人像图片。
5、调整抠图头像位置和大小,直到覆盖住背景图片原头像为止。在设置窗口改变羽化值,使图片效果更自然。
6、最后点击下方的【保存】按钮将最终图片保存至电脑中即可。完成以上设置后,即可实现将一张图片上的头像转移到另一张图片人身上。
5. 如何导入头文件
我也遇到了这个问题,因为头文件错误不能导入。具体原因我是不清楚,不过我发现本来的srt文件需要先导入aegisub之后,然后使用字幕导出功能,先选择utf-8也就是默认,后一步存储的时候会让你填写文件名下面还有格式选项,那个格式选srt就可以了。我是这样解决的,就不放图了,临时过来回复一下,感谢
- 相关评论
- 我要评论
-