美文网首页
EJS 模版使用

EJS 模版使用

作者: Axiba | 来源:发表于2016-07-25 14:59 被阅读610次

之前一直用 underscore 的 _.template() 填充htnl模版,但是后面发现有几个点的问题,一个是针对注入攻击的,另一个是调用的不简洁。所以后面引入了ejs模版的使用。

1、有几个好处,一个是使用<%=%><%-%>能有效控制注入攻击,直接把DOM的元素展示出来,当然本质上的应该在输入源处就断绝上传,而且如果想在模版中动态更改变量的内容,而且内容包含类似如下的dom元素,可能都不会被渲染出来:

<font color='red'>xxx<font>
<span>xxxx</span>

使用<%-%>就可以把dom元素也给渲染出来。

2、使用操作方便,例如直接将json数据倒腾到模版中就可以了

let data = {a:'xxx'};
let tpl = require('../templates/xxx.ejs');
...
return tpl(data);

3、但是有个坑需要注意的是,在ejs模版中,对应本地的资源、图片引用无法简单的使用相对路径,例如 '../../images/xxx.png' ,这种的取资源文件的形式是走不通的,不像html这种 loader的方式帮我们做了处理

所以我们可以用绝对路径的方式,例如 'index/images/xxx.png', 但是这种方式,我们打包的时候也不会把图片打包进去,因为我们把资源require进入,那么可以采用几种方法解决

(1 采用字体图标,简直简单根本就不用再纠结这个问题
(2 直接在JS中require引入,不用在模版处理了,麻烦
(3 实在倔脾气要在模版中操作,那就拷贝吧,拷贝到生产环境的对应图片目录下,这样保证生产环境和本地保持资源的一致。有同事使用了webpack的一个插件,这里直接使用了:

//在config.js中引入插件
var CopyWebpackPlugin = require('copy-webpack-plugin');

//在module.exports 中 plugins:
new CopyWebpackPlugin([{
     from: 'runtime/images/*'
}])

相关文章

  • 10.1KOA ejs 模版引擎

    ejs 模版引擎 安装模版引擎中间件 安装模版引擎 定义模版 使用模版引擎 具体 ejs 模版引擎使用 http:...

  • 试着使用ejs模版引擎

    如果使用ejs模版引擎,必须要安装ejs模块 目标:使用ejs模板向输出一个html文件,html中的内容为ejs...

  • EJS 模版使用

    之前一直用 underscore 的 _.template() 填充htnl模版,但是后面发现有几个点的问题,一个...

  • express 中间件之“模版引擎”

    在express里帮我们集成了ejs模版引擎,引入他之后可以直接用ejs,第一步安装 模版引擎的应用 ejs.js...

  • Nodejs 学习2 Koa

    1、Koa ejs 模版引擎 1)安装 koa-views 和 ejs a、 安装 ko...

  • 小白学react之网页获取微信用户信息

    通过上一篇《小白学react之EJS模版实战》我们学习了如何通过EJS模版生成我们高定制化的index.html文...

  • express高效入门教程(5)

    5.ejs模版 #5.1.什么是模版引擎? 为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档...

  • ejs模版语法

    模板语言是什么?就是帮我们用 JavaScript 代码生成 HTML 页面。那我们看下它怎么渲染 HTML: 是...

  • 模板字符串

    模版引擎 自己实现一个类似于EJS的模版引擎核心原理是:1.正则表达式代替字符串2.使用with包裹作用域3.为了...

  • 转义防止注入攻击tip

    之前写的利用模版做的控制:利用 ejs 模版防注入攻击 后面改造了的框架没有用模版html去加载 dom 树,而是...

网友评论

      本文标题:EJS 模版使用

      本文链接:https://www.haomeiwen.com/subject/mmwgjttx.html