express 如何关闭模板引擎?
发布于 12 年前 作者 jinwyp 10350 次浏览 最后一次编辑是 8 年前

我的问题是这样的, 前端是backbone+handlebars, 后端是express+handlebars. restful api

在一个页面渲染后, 例如首页

app.get('/', function(req, res){
    res.render('adminemaillist');
});

发现一个问题就是 在模板中 已经有了{{productname}} 的handlebars 标签, 后端渲染后 把这些都已经替换了. 可是我在前端backbone中还需要 用到 {{productname}}标签模板. 但已经在渲染后的html页面代码中找不到了. 都已经被替换了.

所以我想的的方法 是如何关闭模板, 前端全部用纯静态页面+js + backbone 渲染. 但是例如上面的访问 首页 / 必须是要经过路由和模板引擎. 我不想要任何模板引擎

例如直接访问一个/index1.html 是访问在public/下的静态html文件 是没问题的. 但如果是 / 这样的路径如何访问静态文件?

7 回复

在public是因为你用的这句:app.use express.static __dirname + '/public'如果其他的你也想弄成静态的,也可以这样处理

我就是想 访问localhost:3000/ 等于访问直接访问index.html 如何处理

app.js加

app.engine('html', require('ejs').renderFile)

route处理

app.get('/', function (req, res) {
    res.render('index.html', {
        layout: false
    })
})

@feDaniel 请问楼上,这样做有一个问题,就是当我从index.html页面出去后到下一个页面(假设为show.html)。在show.html页面刷新时,会再次闪现index.html页面,改如何处理此问题呢?

如果是 {{}} 冲突,可以在模板中这样写 {{=<% %>=}},在这之后 {{}} 就替换为 <%%> 如下:

title = ‘标题’;

{{ title }}
<hr>
{{=<% %>=}}
{{ title }}
<% title %>
<hr>
<%={{ }}=%>
{{ title }}
<% title %>

输出为:

标题
<hr>
{{ title }}
标题
<hr>
标题
<% title %>

res.json

或者 res.send ?

@hw6060 几个月没逛社区了,你用的是什么版本的?

回到顶部