无法在 node.js 中显示带有 EJS 文件的图像
Posted
技术标签:
【中文标题】无法在 node.js 中显示带有 EJS 文件的图像【英文标题】:Can't display an image with EJS file in node.js 【发布时间】:2020-04-15 22:34:30 【问题描述】:我是 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
【问题讨论】:
能否给出项目的目录结构? - app.js 和文件夹视图处于同一级别。在视图目录中,我有 index.ejs 文件和 test.jpg 图片 【参考方案1】:您必须将图像(和其他资产)放在单独的文件夹中,并使用 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
【讨论】:
以上是关于无法在 node.js 中显示带有 EJS 文件的图像的主要内容,如果未能解决你的问题,请参考以下文章
使用 Node.JS、Express 和 EJS 实现 browserify 的示例
在 node.js/express 中使用 EJS 显示图像
Node JS+Express:如何在 HTML(EJS) 中定义和使用 MySQL 数据?
我们可以在 Node JS 应用程序中使用带有 ejs(嵌入式 javascript)的 socket.io 而不是 html 页面吗?