为什么express静态化后无法访问app目录里面的图片?

发布于 2022-09-05 22:27:10 字数 649 浏览 5 评论 0

服务端的代码如下:

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

// 静态化app文件夹
app.get('/', express.static(__dirname + '/app'));

io.on('connection', function(socket){
    var session = socket.id;
    console.log('a user connected ' + session);
    io.emit("id",session);
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

index关键代码如下:

<img src="code.png">

app目录下有index.htmlcode.png,输入127.0.0.1:3000可以访问到index,但是读取不到code.png,这是为什么呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独留℉清风醉 2022-09-12 22:27:10

因为你只是匹配了'/'路径的get请求,虽然这个写法也挺。。奇怪的。

app.get('/*', express.static(__dirname + '/app'));

以上写法已经能够满足你的要求。

暗喜 2022-09-12 22:27:10

express中内置的static方法用来托管静态文件,有两种用法

  1. app.use(express.static('public')); 将public作为静态文件
    例:
http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html
  1. app.use('static',express.static('public'));
    将public映射到static上

例:

http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文