node.js - 如何使用 Koa 提供静态文件?

标签 node.js server mount koa serve

我想在我的项目中实现通用链接,我需要通过 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,似乎我无法以正确的方式提供它。

我能做什么?

非常感谢您。

最佳答案

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

使用 koa-static 提供文件

要提供文件,只需使用 app.use()koa-static 中间件传递到 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)

提供单个文件

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

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)

关于node.js - 如何使用 Koa 提供静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65685594/

相关文章:

javascript - ReferenceError: 'pictures' 未定义。使用 Node.js

node.js - 如何删除或替换 Angular SSR 中的所有 console.log

ruby-on-rails - 从树莓派远程连接到 rails 服务器

android - 为什么我不能使用 adb 命令将 sqlite 推送到 Android?

Python shutil.copy 在 FAT 文件系统 (Ubuntu) 上失败

javascript - 如何在 forEach 中使用 Promise 来检查 forEach 是否完成?

javascript - Baconjs 永无止境的流

mongodb - 如何使用 PM2 运行 MongoDB

javascript - express .静态: Cannot GET/

linux - 分区的文件系统丢失 EC2 重启