27 lines
674 B
JavaScript
27 lines
674 B
JavaScript
|
const path = require("path");
|
||
|
const etag = require("etag");
|
||
|
|
||
|
const getContentTypeHeader = require("../utils/getContentTypeHeader");
|
||
|
|
||
|
function serveStaticFile(req, res) {
|
||
|
const tags = ["file"];
|
||
|
|
||
|
const ext = path.extname(req.entry.name).substr(1);
|
||
|
if (ext) {
|
||
|
tags.push(`${ext}-file`);
|
||
|
}
|
||
|
|
||
|
res
|
||
|
.set({
|
||
|
"Content-Length": req.entry.size,
|
||
|
"Content-Type": getContentTypeHeader(req.entry.contentType),
|
||
|
"Cache-Control": "public,max-age=31536000", // 1 year
|
||
|
"Last-Modified": req.entry.lastModified,
|
||
|
ETag: etag(req.entry.content),
|
||
|
"Cache-Tag": tags.join(",")
|
||
|
})
|
||
|
.send(req.entry.content);
|
||
|
}
|
||
|
|
||
|
module.exports = serveStaticFile;
|