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