/vapor-favicon-middleware

Favicon serving middleware for Vapor applications.

Primary LanguageSwift

Vapor Favicon Middleware

Swift Platforms Package Managers

Favicon serving middleware for Vapor.

Installation

Via Swift Package Manager:

.package(url: "https://github.com/jsubida/vapor-favicon-middleware.git", from: "1.0.0"),

Why?

Favicon is a visual cue that client software, like browsers, use to identify a site. So why to use this module?

  • it caches the icon in memory to improve performance by skipping disk access
  • it will serve with the most compatible Content-Type

Usage

import Vapor
import VaporFaviconMiddleware

// configures your application
public func configure(_ app: Application) throws {
    // serve files from /Public folder
    app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))
    
    app.http.server.configuration.port = 8081
    
    // favicon
    let path = app.directory.publicDirectory.appending("/Public/assets/favicon.ico")
    app.middleware.use(FaviconMiddleware(path))
    
    // register routes
    try routes(app)
}

MIT Licensed