Skip to content

prantlf/connect-block-favicon

Repository files navigation

connect-block-favicon

Latest version Dependency status Test coverage

Middleware for Connect, Express or Polka to silence browser requests for favicon.ico with no content. Useful when serving web project files from a local web server for development or test automation purposes.

  • No need for storing a favicon.ico file in the root of your project.
  • Any server supporting middleware supported.
  • No other dependencies.

If you develop or test a web application and your console is polluted by the following message, when the browser tries accessing /favicon.ico, using this middleware will help you to get rid of it:

Failed to load resource: the server responded with a status of 404 (Not Found)

Table of Contents

Synopsis

const connect = require('connect')
const blockFavicon = require('connect-block-favicon')
const serveStatic = require('serve-static')

connect()
  .use(blockFavicon())
  .use(serveStatic('.', { etag: false }))
  .on('error', err => console.error(err))
  .listen(9876, () => console.log('Serving on the port', 9876))

Installation

This module can be installed in your project using NPM, PNPM or Yarn. Make sure, that you use Node.js version 6 or newer.

npm i connect-block-favicon
pnpm i connect-block-favicon
yarn add connect-block-favicon

Getting Started

The main module exports a factory, which returns a request handler. The request handler is a middleware (plugin function) compatible with both Connect, Express or Polka HTTP server frameworks. The factory is function returning the request handler.

const connect = require('connect')
// Load the block-favicon middleware factory.
const blockFavicon = require('connect-block-favicon')

const app = connect()
// Create a block-favicon middleware and pass it to the application server.
app.use(blockFavicon())

The request handler intercepts requests to /favicon.ico and "satisfies" them by serving no content (HTTP status 204) and a request to cache the response for one year.

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.

License

Copyright (c) 2019-2022 Ferdinand Prantl

Licensed under the MIT license.

About

Middleware for Connect or Express to silence browser requests for favicon.ico with no content.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published