无法在node.js中显示带有EJS文件的图像

时间:2019-12-25 05:57:13

标签: javascript html node.js ejs

我是node.js的新手,我只是在玩它以创建网站。我想在网站上显示图片,并且该图片与我的ejs文件位于同一目录中,但没有显示。我做错什么了吗?谢谢!

后端代码

const express = require('express')

//Init App
const app = express();

//Load view engine
app.set('view engine','ejs');

// Home route
app.get('/', function(req,res){
res.render('index.ejs');
});

app.listen(3000, function(){
console.log('Server started in port 3000...');
});

ejs文件内容:

<!DOCTYPE html>
<html>
<head>
  <title>Hello World!</title>
</head>
<body>
  <h1>Picture test</h1>
  <img src="/Users/aray/Documents/Projects/Node/views/test.jpg">
</body>
</html>

项目结构为:

- Node
  - app.js
  - views
    - index.ejs
    - test.jpg

1 个答案:

答案 0 :(得分:0)

您必须将图像(和其他资产)放在单独的文件夹中,并用express.static投放此文件夹:

app.use(express.static('public'));

- Node
  - app.js
  - views
    - index.ejs
  - public
    - test.jpg
<img src="test.jpg">

更多信息可以在快速文档中找到:https://expressjs.com/en/starter/static-files.html