在 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 在索引页面的不同部分显示博客文章