Traducir esta página

Comprobando archivos estáticos en Express

Para servir archivos estáticos como imágenes, archivos CSS, y archivos JavaScript, utiliza la función middleware integrada express.static en Express.

La firma de la función es:

express.static(root, [options]);

El argumento root especifica el directorio raíz desde el cual servir activos estáticos. For more information on the options argument, see express.static.

Por ejemplo, utiliza el siguiente código para servir imágenes, archivos CSS y archivos JavaScript en un directorio llamado public:

app.use(express.static('public'));

Ahora, puedes cargar los archivos que están en el directorio public:

http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html

Note

Express busca los archivos relativos al directorio estático, por lo que el nombre del directorio estático no es parte de la URL.

Para usar múltiples directorios de activos estáticos, llama a la función middleware express.static varias veces:

app.use(express.static('public'));
app.use(express.static('files'));

Express busca los archivos en el orden en el que estableces los directorios estáticos con la función de middleware express.static.

Note

Para obtener mejores resultados, usa un proxy inverso caché para mejorar el rendimiento de sirviendo activos estáticos.

To create a virtual path prefix (where the path does not actually exist in the file system) for files that are served by the express.static function, specify a mount path for the static directory, as shown below:

app.use('/static', express.static('public'));

Ahora, puedes cargar los archivos que están en el directorio public desde el prefijo de ruta /static.

http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html

Sin embargo, la ruta que proporcionas a la función express.static es relativa al directorio desde el cual inicias tu proceso node. Si ejecuta la aplicación expresa desde otro directorio, es más seguro utilizar la ruta absoluta del directorio que desea servir:

index.cjs
const path = require('path');
app.use('/static', express.static(path.join(__dirname, 'public')));

Para más detalles sobre la función serve-static y sus opciones, vea serve-static.