Recientemente comencé a trabajar en Node.js y en el archivo app.js hay esta línea:
app.use(express.favicon());
Ahora, ¿cómo configuro mi propio favicon.ico personalizado?
javascript
node.js
express
favicon
Ilya Karnaukhov
fuente
fuente
app.use(express.favicon())
en Express 4 proporciona: La mayoría del middleware (como favicon) ya no está incluido con Express y debe instalarse por separado. Consulte github.com/senchalabs/connect#middleware . Alternativamente, no puede proporcionar ningún favicon con:app.get('/favicon.ico', (req, res) => res.status(200))
Express js prevent GET /favicon.icoRespuestas:
En Express 4
Instale el middleware favicon y luego haga:
O mejor, usando el
path
módulo:(tenga en cuenta que esta solución también funcionará en las aplicaciones express 3)
En Express 3
Según la API,
.favicon
acepta un parámetro de ubicación:La mayoría de las veces, es posible que desee esto (como sugirió vsync):
O mejor aún, use el
path
módulo (como sugirió Druska):¿Por qué el favicon es mejor que el estático?
Según la descripción del paquete :
ETag
función basada en el contenido del icono, en lugar de las propiedades del sistema de archivos.Content-Type
.fuente
path.join(__dirname, "public")
da como resultado que las cadenas se concatenen sin un separador? Cuanto más pequeña sea la muestra, más rápido podremos arreglar esto (así que si puedes, por favor solo la parte de unión).Content-Type
. Puedes ver lo que hace aquí . ¿Crees que hay mérito en editar esto en la respuesta?No se requieren middlewares adicionales. Solo usa:
fuente
Content-Type
smiley favicon para evitar errores:
para cambiar el icono en el código de arriba
haga un icono tal vez aquí: http://www.favicon.cc/ o aquí: http://favicon-generator.org
conviértalo a base64 tal vez aquí: http://base64converter.com/
luego reemplace el valor del icono base 64
información general sobre cómo crear un ícono favorito
Los íconos se hacen usando Photoshop o Inkscape, tal vez Inkscape luego Photoshop para la corrección de la intensidad y el color (en el menú de imagen-> ajustes).
para obtener un icono rápido, vaya a http://www.clker.com/ y elija Vector Clip Arts y descárguelo como svg. luego llévelo a inkscape ( https://inkscape.org/ ) y cambie los colores o elimine partes, tal vez agregue algo de otra imagen de clipart vectorial, luego para exportar seleccione las partes para exportar y haga clic en archivo> exportar, elija un tamaño como 16x16 para favicon o 32x32. para editar más 128x128 o 256x256. El paquete ico puede tener varios tamaños de iconos en su interior. Puede tener junto con favicon de 16x16 píxeles iconos de alta calidad para el enlace del sitio web.
entonces tal vez mejorar la imagen en photoshop. como vibración, efecto de bisel, máscara redonda, cualquier cosa.
luego suba esta imagen a uno de los sitios web que generan favicons. También hay programas para Windows para editar íconos como https://sourceforge.net/projects/variicons/ .
para agregar el favicon al sitio web. simplemente coloque el favicon.ico como un archivo en la carpeta raíz del dominio. por ejemplo en node.js en la carpeta pública que contiene los archivos estáticos. no tiene que ser nada especial como el código anterior, solo un archivo simple.
fuente
¿No necesitas middleware personalizado? En expreso:
Luego ponga su favicon en público y agregue la siguiente línea en la cabeza de su html:
fuente
Lo tenía trabajando localmente sin el
__dirname +
pero no pude hacerlo funcionar en mi servidor desplegado.fuente
app.use(express.favicon('./public/images/favicon.ico'));
Si está utilizando Express> 4.0, puede optar por serve-favicon
fuente
Si tiene configurada su ruta estática, simplemente use la
<link rel="icon" href="https://stackoverflow.com/images/favicon.ico" type="image/x-icon">
en sus vistas. No hay necesidad de nada más. Asegúrese de tener su carpeta de imágenes dentro de la carpeta pública.fuente
127.0.0.1
lugar delocalhost
en Google Chrome mientras desarrollas, por alguna razón eso me solucionó.Instalar
express-favicon
middleware:Úselo así:
fuente
Debe instalar middleware para servir el favicon.
Intenté esto justo ahora:
y recibí este mensaje de error:
Creo que podemos tomar eso como definitivo.
fuente
El código listado a continuación funciona:
Solo asegúrese de actualizar su navegador o borrar su caché.
fuente
paso 0: agregue el siguiente código a app.js o index.js
app.use("/favicon.ico", express.static('public/favicon.ico'));
paso 1: descargue el icono desde aquí https://icons8.com/ o cree su propio
paso 2: vaya a https://www.favicongenerator.com/
paso 3 : cargue el archivo icon.png descargado> configure 16px> cree favicon> descargue el
paso 4: vaya a la carpeta de descargas, encontrará [archivo .ico], renómbrelo como favicon.ico
paso 5: copie favicon.ico en el directorio público creó el
paso 6: agregue el código siguiente a su archivo .pug debajo de la etiqueta principal, debajo de la etiqueta del título
paso 7: guardar> reiniciar servidor> cerrar navegador> volver a abrir navegador> aparece favicon
NOTA: puede usar un nombre que no sea favicon,
pero asegúrese de cambiar el nombre en el código y en la carpeta pública.
fuente
En app.js:
Suponiendo que el icono reside en "/public/images/favicon.ico", agregue el siguiente enlace en la cabeza de html:
Esto funcionó bien en un proyecto generado automáticamente con el comando:
fuente
Si desea una solución que no implique archivos externos y que no use
express.static
(por ejemplo, un servidor web y un sitio súper ligero de un archivo), puede usarserve-favicon
y codificar sufavicon.ico
archivo como Base64. Me gusta esto:Reemplace
IMAGE_AS_BASE64_STRING_GOES_HERE
con el resultado de codificar su archivo favicon como Base64. Hay muchos sitios que pueden hacer eso en línea, tener una búsqueda.Tenga en cuenta que es posible que deba reiniciar el servidor y / o el navegador para ver que funciona
localhost
, y una memoria caché de actualización / borrado para ver que funciona en la web.fuente