【问题标题】:expressjs - not sending the file from view configexpressjs - 不从视图配置发送文件
【发布时间】:2014-07-15 18:34:57
【问题描述】:

在我的节点应用程序中,我配置了 views 文件夹,稍后我只传递了 html 名称。现在需要使用视图配置 + html 文件正确加载 html 文件。 (我错了吗!)

但它不起作用。有人给我建议吗?

这是我的代码:

var express = require('express'),
    http = require('http'),
    jade = require('jade'),
    app = express();

app.set('view engine', 'jade');
app.set('views', __dirname + '/views'); // i configured the path so i am passing file name alone on get.

app.get('/', function(req,res){
    res.sendfile('index.html'); //it's not working
    res.sendfile('views/index.html') //it works
});

http.createServer(app).listen(3000, function () {
  console.log('Express server listening on port ');
});

提前致谢

【问题讨论】:

  • views 变量仅适用于翡翠中间件,它只识别.jade 文件,您将使用res.render('file'); 渲染这些文件

标签: node.js express pug


【解决方案1】:

您似乎对视图引擎是什么有误解。视图引擎采用一些非 HTML 代码,并将其转换为 HTML。在这里,您将其设置为使用jade

视图引擎只适用于res.render() 函数。 res.sendfile() 只是从 current 目录发送一个文件,而不是从 views 目录发送。

【讨论】:

    【解决方案2】:

    如果您想提供一些 static HTML 文件,请使用 express。您可以直接将这些文件放在public 文件夹中。

    当服务器收到/GET 请求时,它将搜索/public/index.html 作为响应。您不必为该/ 添加router

    如果你想使用一些template views,那么你必须使用一些视图引擎。

    【讨论】:

      猜你喜欢
      • 2021-09-14
      • 2016-11-22
      • 2012-10-31
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 2011-03-15
      • 2019-04-01
      相关资源
      最近更新 更多