Estoy tratando de enviar un gif al cliente para usarlo más tarde en CSS. Los registros de la consola me dan un 404 no encontrado para el gif. Está en el directorio público.
var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); var express = require('express'); var peopleCount = 0; express().use(express.static('public')); app.get('/', function(req, res){ res.sendFile(__dirname + '/public/index.html'); }); span { background:url('public/gif.gif'); background-repeat:repeat-x; background-position:0 0; text-align:center; color:transparent; -webkit-background-clip:text; -moz-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; font-weight: bold; font-size: 20px; } El servidor envía bien el archivo index.html , pero no el gif.gif
probar:
app.use(express.static('public'));en vez de
express().use(express.static('public'));Para empezar, public/gif.gif es una referencia relativa, por lo que buscará el archivo en <window location>/public/gif.gif . Suponiendo que desea que esto haga referencia a <root>/public/gif.gif , use una referencia absoluta (observe la / inicial):
background:url('/public/gif.gif');
Además, los directorios estáticos deben vincularse a la instancia de la aplicación y deben especificar un nombre que se usará al llamar al servidor:
app.use('/public', express.static(path.join(__dirname, 'public')));
en el ejemplo anterior, el __dirname + /public en su proyecto estaría ubicado en /public al realizar llamadas al servidor.