Skip to content

cenfun/koa-static-resolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Koa Static Resolver

Koa static file resolver, dirs, default index, path replace, cache, livereload, gzip

Install

npm install koa-static-resolver --save

Usage

const Koa = require('koa');
const KSR = require('koa-static-resolver');
const app = new Koa();
app.use(KSR({
    dirs: ["./static/", "../node_modules/"],
    defaultIndex: "index.html"
}));
app.listen(8080);

cache

app.use(KSR({
    dirs: ["./static/"],
    //server cache (Memory)
    cache: {},
    //do NOT cache big size file
    cacheMaxLength: 10 * 1024 * 1024,
    //browser cache header: max-age=<seconds>
    maxAge: 600
}));

livereload

app.use(KSR({
    dirs: ["./static/"],
    livereload: '\n<script src="/livereload.js"></script>\n'
}));
//only inject to .html

gzip

app.use(KSR({
    dirs: ["./static/"],
    cache: {},
    gzip: true,
    gzipMinLength: 1024,
    gzipTypes: [".html", ".css", ".js", ".svg", ".xml"]
}));
//require headers with "Accept-Encoding": "gzip"

include/exclude

app.use(KSR({
    dirs: ["./static/"],
    include: ["include/folder", /RegExp/],
    exclude: ["exclude/folder", /RegExp/]
}));
// any files not matched include/folder will be 404 not found
// any files matched exclude/folder will be 404 not found
// support RegExp

replace

app.use(KSR({
    dirs: ["./static/"],
    replace: {
      "from_path": "to_path"
    }
}));
//when request /from_path/some_next_path/, will be replaced with /to_path/some_next_path/ to find out file path

headers

app.use(KSR({
    dirs: ["./static/"],
    headers: {
      "header_key": "header_value"
    }
}));

CHANGELOG

  • v1.0.5

    • added test case
    • added types
  • v1.0.4

    • added include/exclude match for file path
  • v1.0.3

    • fixed cache issue if maxAge=0
  • v1.0.2

    • fixed livereload

About

Koa static file resolver, dirs, default index, path replace, cache, livereload, gzip

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published