Comments (3)
so it would go in your project's static resource directory and could be served by the general purpose static file serving middleware, couldn't it?
Yes, as long as you have it set to serve .ico
with the correct content-type.
Why should there be a dedicated middleware to handle this specific static file?
Because it lets you do two things:
- You can put it before your access logger like
morgan
and then you won't log all those requests. - The icon file is very tiny and everything requests it, no matter what URL is accessed on your site. This means caching the icon in memory (like this module does) is extremely efficient compare to read it off your disk (and doing file stats looking for the file) for all these request.
But of course last, this module derrives from old connect
days, when all the middlewre, like this favicon
one, were just example middleware and not actually strictly necessary.
The module is not necessary as long as you're serving favicon.ico
with the correct content-type of image/x-icon
from your static stuff and as long as you don't mind every request hitting your disk.
The answers to these questions should be added to the readme.
Feel fee to make a PR :)
from serve-favicon.
Thanks, I understood the logging concerns, but did not realize this module cached the favicon in memory; that wasn't mentioned anywhere.
I've submitted a pull request which I hope accurately conveys your perception of the advantage of this module.
But aren't there other files that would benefit from this same treatment? robots.txt and the miriad apple-touch-icons come to mind.
from serve-favicon.
But aren't there other files that would benefit from this same treatment? robots.txt and the miriad apple-touch-icons come to mind.
Sure, but those are out of the scope of this module and represent a tiny fraction of traffic compared to favicon.ico
files--every single browser will request the favicon.ico
file; user's browsers don't even request robots.txt
and robots won't constantly request it over and over (there are only so many bots in the world) and the apple-touch-icons are only requested by Apple products, which is only ~10% of the usage according to http://gs.statcounter.com/
from serve-favicon.
Related Issues (20)
- Performance HOT 2
- where do i get the favicon icon ? HOT 1
- Support Requirement for Multiple Favicons HOT 4
- doc typo HOT 1
- serving different favicon for different pages HOT 1
- If no favicon present, should just return a 404 HOT 13
- Possible to use location outside of your repo? HOT 4
- Can't see favicon when using Microsoft Edge HOT 2
- Vary favicon by domain HOT 4
- Doubts on res._headers HOT 3
- Favicon not showing when running server with long context path. HOT 5
- How to use png favicon files? HOT 1
- how can I use a url instead of path? HOT 4
- how to add different favicon for different routers? HOT 3
- serve-favicon vulnerable to RegEx Denial of Service attack HOT 1
- Favicon is not showing HOT 5
- Can't run express js server app on my local host:3000 HOT 4
- Feature Request: Serve icon based on host mapping HOT 2
- Doesn't work with Chrome HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from serve-favicon.