当前位置: 首页 > 面试题库 >

使用Node JS / Express提供包含图片的静态HTML页面

长孙正卿
2023-03-14
问题内容

我可以使用express提供静态HTML页面。我还安装了“
ejs”,以显示来自.js文件中局部变量的数据的页面。我只需要在页面一角显示一个小的徽标以及其余数据。在浏览器中仅打开html文件可以很好地加载图像,但是在服务器上,图像损坏了。我认为这可能与我的文件路径或目录结构有关。这是我原始的简单代码,没有徒劳的尝试:

server.js

var express = require ('express');
var fs = require ('fs');
var app = express ();
var bodyParser = require ('body-parser');
app.use (bodyParser ());
var server = require ('http').createServer (app);
app.set('views', __dirname + '/views');
app.engine('.html', require('ejs').__express);

var my_name="Goku";
var my_power=9001;

app.get ('/', function (req, res){
    console.log ('GET /');
    res.render('index.html',{name:my_name,power:my_power});    
    });

server.listen (8888);

index.html

<html>
<body>
<input id="name" value=" <%=name%> " /><br>
<input id="power" value=" <%=power%> "/><br>
</body>
</html>

我没有包括img src行,因此您可以给我完整的行,有时人们会忽略我细微的语法错误。关于目录结构,我在/
home文件夹中只有这个’server.js’文件,而在’index’中。 / home / views中的html文件

Ploutch提供的解决方案:我将logo.jpg移到了在“ / home”下创建的“ / images”文件夹中,我刚刚添加了以下几行-

server.js

app.use(express.static(__dirname + '/images'));

index.html

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

由于我正在使用ejs渲染具有局部变量的页面,因此,如果将logo.jpg放置在当前目录中而不是单独的images文件夹中,则该图像会很好地加载,但是“
name”和“ power”的输出将被破坏。


问题答案:

您需要以静态方式提供资源文件(图像,js,css等)。

为此,请将它们放在子目录中,然后在前面添加 server.listen

app.use(express.static(__dirname + '/public'));

(假设public是包含您的静态文件的文件夹的名称)

然后,假设您的图片被调用,logo.png您可以这样称呼它:

<img src="/logo.png" />


 类似资料:
  • 我在webpack和react服务器上提供静态图像时遇到问题。 这是我当前的文件夹结构 正如你所看到的,我有一个资产文件夹,它保存着我所有的图片,这是我的网页输入和输出配置 其中client条目是我的react项目client_条目的源:path.join(process.cwd(),'src/client/index.jsx') 这里是我试图从项目根目录下的assets文件夹加载图像的地方 只有

  • 问题内容: 我已经添加了用于在节点服务器上提供图像的代码,但是在连接到Node时似乎不提供HTML中的图像。我还可以正确使用外部CSS和JS。这是我在Node中的代码片段(请参见下文)。先感谢您! 问题答案: 当有人尝试实现自己的静态文件服务器而不是使用Express或有效的方法而无法使其工作时,我在Stack Overflow上看到了很多类似的问题。如果可以实现自己的静态文件服务器,请执行此操作

  • 问题内容: 我正在尝试提供静态html文件,但返回500错误(.py和模板目录上有editor.html的副本),这是我尝试过的全部操作: 这是响应: 问题答案: 将其简化为最简单的方法: 将静态资产放入子文件夹。 将Flask设置为默认值,也不要设置为默认值。 通过预配置访问静态内容以验证文件是否有效 如果仍然要重用静态文件,请使用,而不要使用斜杠: 这将 直接 在文件夹内查找文件。 假定您将上

  • 问题内容: 这是我的项目文件夹 这是我index.js中的静态文件配置 这是我的index.html 这是我的nginx配置 但是我在所有脚本上都得到404。另一个奇怪的是,这些文件上的mime-type设置为 我在这里做错了什么? 我有一个项目,该项目具有相同的项目结构,并且具有相同的配置,但它适用于此项目,在这种情况下不起作用。 问题答案: 您无需配置Nginx 和 Express即可提供静态

  • 我在数字海洋上有一个水滴,我正在使用它来主持一个网站和该网站的API。 null

  • 我正在通过spring boot启动一个嵌入式tomcat,并希望提供一个静态索引。html页面作为正在运行的应用程序的一部分。 但以下方法不起作用: 结果:当我调用localhost:8080时,我只看到单词“index”,而没有看到我的html页面。为什么?