2017-03-14 3 views
0

Wie versorge ich statische Dateien mit Koa2, wenn jemand visitis route? Ich habe versucht, Millionen von Dingen und ich immer Nachricht nicht gefunden. Server hat mit dem Status reagiert 404Statische Dateien mit Koa2 versorgen

import 'babel-polyfill' 
import co from 'co' 
import path from 'path' 
import render from 'koa-swig' 
import Koa from 'koa' 
import Router from 'koa-router' 
import serve from 'koa-static' 
import convert from 'koa-convert' 
import send from 'koa-send' 

const app: Koa = new Koa() 
const route: Routerr = new Router() 

**example 1** 

app.use(serve(path.resolve(__dirname + '/public/index.html'))) 

router.get('/lista', function *() { 
    console.log('Hello') 
}) 

**example 2** 

app.use(async (ctx) => { 
    await send(ctx, '/index.html', { root: '/public' }) 
}) 

router.get('/lista', function *() { 
    console.log('Hello') 
}) 



app.use(router.routes()) 
app.use(router.allowedMethods()) 

Antwort

2

Ich habe einige einfache Koa 2 Prototyp App ein Weilchen her, und im Grunde nur Beispiele aus den Modulseiten kopiert. Leider kann das heißt, ich wirklich nicht sagen Ihnen, wie es funktioniert, aber ich habe etwas zu arbeiten, und es sieht so etwas wie dieses (mit ES2016):

const serve = require('koa-static'); 
const mount = require('koa-mount'); 
const Koa = require('koa'); 

const static_pages = new Koa(); 
static_pages.use(serve('static')); 

const app = new Koa(); 
app 
    .use(mount('/static', static_pages)) 

Diese „Mounts“ /static als Wurzel für alle statischen Seiten, die sich im lokalen Verzeichnis static befinden.

0

Dies ist ein ähnlicher Ansatz zu @Some Programmierer hat erwähnt, aber ohne Verwendung der Mount.

import Koa from 'koa'; 
import serveStatic from 'koa-static'; 

const app = new Koa(); 
app.use(serveStatic(__dirname + '/public'));