在 node.js/express 中使用 EJS 显示图像

Posted

技术标签:

【中文标题】在 node.js/express 中使用 EJS 显示图像【英文标题】:Displaying an image with EJS in node.js/express 【发布时间】:2013-07-19 06:34:18 【问题描述】:

我只是尝试使用 node.js/express/ejs 进行设置。我知道 ejs 不是真正的 html,所以我很难只显示一个简单的图像。有人能指出我正确的方向吗?

目录结构为:

myApp/server.js myApp/views/index.ejs myApp/logo.jpg

我现在有

// index.ejs
<img src = "../logo.jpg" />

我是不是走错了路?谢谢。

【问题讨论】:

谢谢,这对我有用。非常准确的解释。 【参考方案1】:

Express 中的静态文件必须放在static 中间件中指定的目录中。这通常是./public/

例如,在您的server.js 中,您可能有这样的内容:

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

这个文件夹中的每个文件都可以从根 URL 访问,所以这会起作用:

<img src="logo.jpg" />

【讨论】:

哦,好吧!我不完全确定如何。是否只有 1 个目录可以“静态”?并且源会自动定向到那里? 您可以在此之后添加各种静态中间件,它们的工作方式相同。如果在该目录中找不到该文件,则转到下一个中​​间件...【参考方案2】:

您必须在 app.js 上分配 app.use( express.static( "public" ) ); 然后不要忘记 / 作为 root:

<img src="/images/logo.jpg" />

图片文件夹应该在公共文件夹中:

- public/
  - images/
    - logo.png
- app.js

【讨论】:

【参考方案3】:

我的js 文件在这里c:/blog/index.js 和图像文件c:/blog/views/image.js。并输入js 归档此代码

app.use( express.static( "views" ) );

然后在 CSS 中添加属性

body background-image: url("./image.jpg");

【讨论】:

以上是关于在 node.js/express 中使用 EJS 显示图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 Node.JS、Express 和 EJS 实现 browserify 的示例

Node JS+Express:如何在 HTML(EJS) 中定义和使用 MySQL 数据?

使用 Node.Js、Express 和 EJS 在索引页面的不同部分显示博客文章

如何使用 mongodb、node.js、express 和 EJS 创建动态站点地图?

node.js express+ejs引擎构建第一个项目

如何使用 Express / Node.JS 创建可在所有视图中访问的全局变量?