m0_64389247 2023-01-27 11:19 采纳率: 50%
浏览 26
已结题

nodeJS客户端获取服务器下的图片文件夹目录报404

如下图,按理来说路径应该是正确的呀,本机地址下直接找upload或avatar目录下存储的图片,应该是访问 http://127.0.0.1:3006/upload/%E2%80%A6%E2%80%A6 地址吧,但是报404找不到资源,两个文件夹下的二进制图片资源都获取不到。
并且如果直接访问http://127.0.0.1:3006/avatar,也是404。
而且两个图片的文件夹都通过app.use('/avatar',express.static('./avatar'))静态托管了。

img

img

  • 写回答

1条回答 默认 最新

  • 未来在这儿 2023-01-27 11:42
    关注

    express.static()
    为了提供对静态资源文件(图片、csss文件、javascript文件)的服务,请使用Express内置的中间函数 express.static 。
    传递一个包含静态资源的目录给 express.static 中间件用于立刻开始提供文件。比如用以下代码来提供public目录下的图片、css文件和javascript文件:
    app.use(express.static('public'));
    express 会在静态资源目录下查找文件,所以不需要把静态目录public作为url的一部分。现在,你可以加载 public目录下的文件了:
    http://localhost:3000/hello.html
    http://localhost:3000/images/1.jpg
    http://localhost:3000/css/style.css
    http://localhost:3000/js/index.js
    可以多次使用 express.static 中间件来添加多个静态资源目录,这时express 将会按照你设置静态资源目录的顺序来查找静态资源文件:
    app.use(express.static('public'));
    app.use(express.static('files'));
    为了给静态资源文件创建一个虚拟的文件前缀(实际上文件系统中并不存在) ,可以使用 express.static 函数指定一个虚拟的静态目录,就像下面这样:
    app.use('/static', express.static('public'));
    现在你可以使用 /static 作为前缀来加载 public 文件夹下的文件了:
    http://localhost:3000/static/hello.html
    http://localhost:3000/static/images/1.jpg
    http://localhost:3000/static/css/style.css
    http://localhost:3000/static/js/index.js
    然而,你提供给 express.static 函数的路径是一个相对node进程启动位置的相对路径。如果你在其他的文件夹中启动express app,更稳妥的方式是使用静态资源文件夹的绝对路径:
    app.use('/static', express.static(__dirname + '/public'));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月4日
  • 已采纳回答 1月27日
  • 修改了问题 1月27日
  • 修改了问题 1月27日
  • 展开全部

悬赏问题

  • ¥15 freertos下使用外部中断失效
  • ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
  • ¥15 devserver配置完 启动服务 无法访问static上的资源
  • ¥15 解决websocket跟c#客户端通信
  • ¥30 Python调用dll文件输出Nan重置dll状态
  • ¥15 浮动div的高度控制问题。
  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论