Как я могу обслуживать статический файл с помощью Koa?

Я хочу реализовать универсальные ссылки в своем проекте, и мне нужно обслуживать json через Koa, который представляет собой статический файл с именем apple-app-site-association.

Мой файл находится в папке / assets / apple-app-site-association / apple-app-site-association.

Меня беспокоит, что я не могу получить доступ к этой ассоциации https: // myprojectlink / apple-app-site.

Что у меня на данный момент:

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, похоже, я не могу его обслужить должным образом.

Что я могу сделать?

Заранее большое спасибо.


person Gina    schedule 12.01.2021    source источник


Ответы (3)


serve (koa-better-serve), как и большинство статических серверных промежуточных программ для фреймворков Node, принимает путь к каталогу, а не путь к отдельному файлу. Вы также можете избавиться от mount() вызова, koa-mount предназначен для установки других приложений Koa в качестве промежуточного программного обеспечения.

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

person Zac Anger    schedule 13.01.2021

Официальный метод обслуживания статических файлов - https://www.npmjs.com/package/koa-static, вы можете увидеть там документацию.

person RuiSiang    schedule 03.02.2021

Модуль koa-static - это то, что вы ищете. Вы можете использовать это для обслуживания одного файла или всего каталога по заданному пути. Вот пара примеров, которые должны помочь:

Обслуживание файлов с koa-static

Для обслуживания файлов просто передайте промежуточное ПО koa-static в стек промежуточного ПО koa с помощью app.use().

Обслуживание всего каталога

Здесь мы обслуживаем весь каталог /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)
person Dominic Egginton    schedule 25.02.2021