Как я могу обслуживать статический файл с помощью 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, похоже, я не могу его обслужить должным образом.

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

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

3 ответа

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

Обслуживание файлов с помощью

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

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

Здесь мы обслуживаем весь каталог

      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 файл внутри каталога

      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)

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 , вы можете увидеть там документацию.

Другие вопросы по тегам