【问题标题】:Express not loading image with absolute path表示不使用绝对路径加载图像
【发布时间】:2019-07-31 14:17:44
【问题描述】:

我正在制作一个 NodeJS 应用程序,并且我有一个 div 元素,其背景图像设置在外部 CSS 文件中。 CSS 文件本身工作得很好,没有问题。此外,当我在没有节点的情况下加载 HTML 时,背景图像显示得很好。

CSS:

#schoolInfo {
  display: block;
  background-image: url('slide1pic.jpg');
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
  background-size: cover;
}

app.js:

var express = require('express');
var app = express();
var serv = require('http').Server(app);
var io = require('socket.io')(serv);
var path = require('path');

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

app.use(express.static('client/home'));

app.post('/createSchool', function(req, res) {

  app.use(express.static('client/school'));
  res.sendFile(path.join(__dirname, '/client/school/index.html'));

  io.emit('updateSchool', response);
});

serv.listen(3000);
console.log("Server started on localhost://3000");

很明显,我使用的是绝对 URL,所以我不知道为什么 express 找不到它。我在命令提示符(这是我运行服务器的地方)或浏览器的控制台中没有收到任何错误。

我需要在我的 app.js 中添加一些东西吗?任何帮助将不胜感激。

【问题讨论】:

  • 浏览器没有错误?您可以查看源选项卡并找到您的 css 文件吗?
  • @IrkenInvader 是的,就在那儿。
  • 您可以尝试将图像与您的 html 放在同一个文件夹中并在没有路径的情况下引用它吗?
  • @IrkenInvader 试过了,还是不行。

标签: javascript html css node.js express


【解决方案1】:

您在提供文件的 url 中缺少路由表单:

app.use('/', express.static('client/home'));

路径“/”是相对于您开始节点进程的位置。

如果您的 home 目录中有一个 index.html 文件,那么您可以在其中有一个 images 文件夹,并且您的 express.static() 将如下所示:

app.use('/images', express.static('client/home'));

在您的 html 文件中,您只需输入:

<img src="images/file.png" />

然后你只需要在以下位置启动你的节点进程:

client\home > node server.js

【讨论】:

  • 如果我的图片在client/assets/images 中,这将如何工作?
  • 你可以这样做:app.use('/images', express.static('client/assets'));
  • 这会将 /images 映射到 client/assets/images:app.use('/images', express.static('client/assets/images'));
  • 如果我只是将&lt;img src="images/file.jpg"/&gt; 放在我的 index.html 文件中,图像会显示得很好。但如果我在外部 CSS 文件中使用 background-image,它不会显示任何内容。
  • 你把你的css文件放在哪里了?您是否正在定义一个类以在后台加载此图像?你能展示你的css吗?
猜你喜欢
  • 2020-01-11
  • 2018-12-28
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 1970-01-01
相关资源
最近更新 更多