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

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日
  • 展开全部

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效