assets--express.static('public'
¿Qué son los Assets?
Assets (o "activos" en español) son todos los archivos estáticos que componen la interfaz visual y funcional de una aplicación web.
📦 Tipos de Assets
| Tipo | Extensiones | Ejemplos |
|---|---|---|
| CSS | .css, .scss, .sass | estilos, layouts, animaciones |
| JavaScript | .js, .mjs | lógica frontend, interacciones |
| Imágenes | .jpg, .png, .gif, .svg, .webp | logos, fotos, iconos, ilustraciones |
| Fuentes | .woff, .woff2, .ttf, .otf | tipografías personalizadas |
| Archivos estáticos | .html, .xml, .json | templates, datos de configuración |
| Media | .mp4, .webm, .mp3 | videos, audios |
🎯 Características de los Assets
No cambian dinámicamente - Son iguales para todos los usuarios
Se sirven directamente - No requieren procesamiento en el servidor
Se cachean en el navegador - Mejoran el rendimiento
Se organizan en carpetas - CSS, JS, images, fonts, etc.
📁 Estructura Típica de Assets
mi-proyecto/
├── public/ ← Raíz de assets
│ ├── css/
│ │ ├── main.css
│ │ ├── reset.css
│ │ └── responsive.css
│ ├── js/
│ │ ├── main.js
│ │ ├── utils.js
│ │ └── vendor/ ← Librerías externas
│ ├── images/
│ │ ├── logo.png
│ │ ├── background.jpg
│ │ └── icons/
│ ├── fonts/
│ │ └── roboto.woff2
│ └── assets/ ← Carpeta genérica
│ └── ...💻 En Express con express.static
const express = require('express');
const app = express();
// Servir todos los assets desde 'public'
app.use(express.static('public'));
// Ahora estos archivos son accesibles:
// http://localhost:3000/css/main.css
// http://localhost:3000/js/main.js
// http://localhost:3000/images/logo.png🌐 En el HTML (Frontend)
<!DOCTYPE html>
<html>
<head>
<!-- CSS Assets -->
<link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/css/responsive.css">
<!-- Font Asset -->
<link href="/fonts/roboto.woff2" rel="preload">
</head>
<body>
<!-- Image Assets -->
<img src="/images/logo.png" alt="Logo">
<img src="/images/icons/menu.svg" alt="Menú">
<!-- JavaScript Assets -->
<script src="/js/vendor/jquery.js"></script>
<script src="/js/main.js"></script>
</body>
</html>🔄 Assets vs Archivos Dinámicos
| Característica | Assets | Archivos Dinámicos |
|---|---|---|
| Generación | Archivos fijos | Se crean al vuelo |
| Ejemplos | CSS, imágenes, JS frontend | API responses, vistas renderizadas |
| Extensión | .css, .png, .js | .ejs, .hbs, JSON de API |
| Caché | Larga duración | Corta o sin caché |
| Middleware | express.static | Rutas personalizadas |
📊 Ejemplo Práctico
const express = require('express');
const app = express();
// ✅ Assets (estáticos)
app.use('/css', express.static('public/css'));
app.use('/js', express.static('public/js'));
app.use('/img', express.static('public/images'));
// ✅ Archivo dinámico (generado en servidor)
app.get('/user/:id', (req, res) => {
// Esto NO es un asset - se genera para cada usuario
res.json({ id: req.params.id, name: 'Usuario' });
});
app.listen(3000);🚀 Buenas Prácticas con Assets
Organización clara
public/ ├── assets/ │ ├── styles/ │ ├── scripts/ │ └── media/Optimización
Minificar CSS/JS en producción
Comprimir imágenes (WebP, AVIF)
Usar versionado (cache busting)
Headers de caché
app.use(express.static('public', { maxAge: '30d', // Assets cacheados por 30 días immutable: true // No cambiarán }));
🎯 Resumen
Assets = Archivos estáticos (CSS, JS, imágenes, fuentes)
No cambian con cada request
Se sirven con
express.staticSe organizan en carpetas como
public/oassets/Mejoran rendimiento con caché
En términos simples: todo lo que ves y escuchas en una web que no es generado en el momento son assets
Comentarios
Publicar un comentario