Archivos estáticos en Express.js

| 2016-06-13 | No hay comentarios »

nodejs-and-expressContinuando con el anterior artículo, en ésta ocasión les quiero mostrar el servicio de archivos estáticos en Express.

Para el servicio de archivos estáticos como, por ejemplo, imágenes, archivos CSS y archivos JavaScript, utilice la función de middleware incorporado express.static de Express.

Pase el nombre del directorio que contiene los activos estáticos a la función de middleware express.static para empezar directamente el servicio de los archivos. Por ejemplo, utilice el siguiente código para el servicio de imágenes, archivos CSS y archivos JavaScript en un directorio denominado public:


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

Ahora, puede cargar los archivos que hay 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

Para utilizar varios directorios de activos estáticos, invoque la función de 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 se definen los directorios estáticos con la función de middleware express.static.

Para crear un prefijo de vía de acceso virtual (donde la vía de acceso no existe realmente en el sistema de archivos) para los archivos a los que da servicio la función express.static, especifique una vía de acceso de montaje para el directorio estático, como se muestra a continuación:


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

Ahora, puede cargar los archivos que hay en el directorio public desde el prefijo de vía de acceso /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

No obstante, la vía de acceso que proporciona a la función express.static es relativa al directorio desde donde inicia el proceso node. Si ejecuta la aplicación Express desde cualquier otro directorio, es más seguro utilizar la vía de acceso absoluta del directorio al que desea dar servicio:


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

Acerca del autor: Rodrigo Paszniuk

Ingeniero Informático, amante de la tecnología, la música, el ciclismo y aprender cosas nuevas.

Posts Relacionados

  • Tutorial: Autenticación de usuarios en Node.js con Facebook utilizando Passport
  • Tutorial: Autenticación basada en Token utilizando Node.js + Express.js + MongoDB
  • Tutorial: Crear una aplicación web utilizando MEAN
  • Direccionamiento básico de Express.js