如何解决如何使用 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-static
将 app.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-mount 将 koa-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 举报,一经查实,本站将立刻删除。