微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Koa 提供静态文件? 提供整个目录提供单个文件在给定路径上提供目录或文件

如何解决如何使用 Koa 提供静态文件? 提供整个目录提供单个文件在给定路径上提供目录或文件

我想在我的项目中实现通用链接,我需要通过 Koa 提供一个 json,它是一个名为 apple-app-site-association静态文件

我的文件位于 /assets/apple-app-site-association/apple-app-site-association 文件夹中。

我担心的是我无法访问此 https://myprojectlink/apple-app-site-association。

我现在拥有的:

const path = require("path");
const Koa = require("koa");
const mount = require("koa-mount");
const serve = require("koa-better-serve");

app.use(mount("/apple-app-site-association",serve(path.resolve(__dirname,"../../../assets/apple-app-site-association/apple-app-site-association"))));

我收到了 Not Found,似乎我无法以正确的方式提供它。

我能做什么?

非常感谢您。

解决方法

serve (koa-better-serve) 与大多数 Node 框架的静态服务器中间件一样,采用目录路径,而不是单个文件的路径。你也可以去掉 mount() 调用,koa-mount 用于挂载其他 Koa 应用作为中间件。

app.use(serve(path.resolve(__dirname,"../../../assets/apple-app-site-association/")));

,

静态文件服务的官方方法是https://www.npmjs.com/package/koa-static,您可以在那里查看文档。

,

koa-static 模块正是您要找的。您可以使用它为给定路径提供单个文件或整个目录。以下是一些应该会有所帮助的示例:

使用 koa-static 提供文件

要提供文件,只需使用 koa-staticapp.use() 中间件传递给 koa 的中间件堆栈。

提供整个目录

这里我们提供整个 /static 目录

const Koa = require('koa')
const serve = require('koa-static')
const path = require('path')

const app = new Koa()
app.use(serve(path.join(__dirname,'/static')))

app.listen(3000)

提供单个文件

这里我们提供单个文件,例如 data.json 目录中的 /static 文件

const Koa = require('koa')
const serve = require('koa-static')
const path = require('path')

const app = new Koa()
app.use(serve(path.join(__dirname,'/static/data.json')))

app.listen(3000)

在给定路径上提供目录或文件

使用 koa-mountkoa-static 挂载到给定路径。例如,这里我们将整个 /static 目录挂载到 /public 路径

const Koa = require('koa')
const serve = require('koa-static')
const mount = require('koa-mount')
const path = require('path')

const app = new Koa()
app.use(mount('/public ',serve(path.join(__dirname,'/static'))))

app.listen(3000)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?