Medley plugin for serving static files.
npm install @medley/serve-static
# or
yarn add @medley/serve-static
const medley = require('@medley/medley');
const path = require('path');
const app = medley();
app.register(require('@medley/serve-static'), {
root: path.join(__dirname, 'static')
});
// Serves files in the './static' folder from the root "/" URL
The absolute path of the directory that contains the files to serve. The
file to serve will be determined by combining this value with req.url
.
Default: '/'
A URL prefix that serves as a virtual mount path for the static directory.
const medley = require('@medley/medley');
const path = require('path');
const app = medley();
app.register(require('@medley/serve-static'), {
root: path.join(__dirname, 'static'),
prefix: '/static/'
});
// A request to "/static/styles.css" will get 'styles.css' in the './static' folder
Tip: Registering the plugin on a prefixed sub-app is an alternative to using this option.
Default: undefined
A function to set custom headers on the response. Setting headers must be done synchronously. The function receives the following arguments:
res
- Node'sServerResponse
object for the request.filePath
- The absolute path of the file that is being sent.stats
- The fs stats object of the file that is being sent.
Example:
// https://www.npmjs.com/package/content-disposition
const contentDisposition = require('content-disposition');
// Set header to force download
function setHeaders(res, filePath, stats) {
res.setHeader('content-disposition', contentDisposition(filePath));
}
app.register(require('@medley/serve-static'), {
root: path.join(__dirname, 'downloads'),
setHeaders: setHeaders
});
The following options are also supported and will be passed directly to the
send
module:
The send
module is only designed to work with the native Node http
module,
so handling errors when using this module with Medley doesn’t work very well
(without writing major workarounds that could end up hurting performance).
For this reason, if an error occurs while trying to send a file (including 404
errors when a file isn’t found), the error will be sent to Medley's
onErrorSending
function and a response will be sent automatically.