我可以使用express来提供静态HTML页面。我还安装了“ejs”以从我的.js文件中的本地变量渲染页面。我只需要在页面角落显示一个小标志和其余数据。
在浏览器中打开html文件可以正常加载图像,但是使用服务器时会出现损坏的图像。我认为这可能是由于我的文件路径或目录结构有问题。
以下是我的原始简单代码(不包括无用的尝试):
server.js
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' 文件和 /home/views 文件夹中的 'index.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"的输出将会出错。