Você sabe que está enviando o index.html para cada solicitação?
Mude isso:
router.get('*', function(request, response) {
response.sendfile('./public/index.html');
});
Para isso:
app.use(express.static(path.join(__dirname, 'public')));
Ou isto:
app.use('/path', express.static(path.join(__dirname, 'public')));
se você foi servir os arquivos estáticos em algum caminho diferente de
/
. Certifique-se de adicionar isso ao início do seu arquivo:
var path = require('path');
Verifique também se você realmente tem o
public
diretório no local correto e que inclui o index.html
e outros arquivos necessários. É claro que você pode ter outros problemas, já que obviamente não incluiu todo o seu código.
Veja meu exemplo no GitHub se você quiser servir arquivos estáticos com o Express:
- https://github.com/rsp/node-express-static-example
É um exemplo de trabalho que você pode baixar, colocar seu próprio conteúdo estático no diretório correto e personalizar para suas próprias necessidades.
Mais exemplos para fazer o mesmo com e sem Express:
- https://github.com/rsp/node-static-http-servers
Outras respostas relacionadas:
- Como servir uma imagem usando nodejs
- Falha ao carregar o recurso do mesmo diretório ao redirecionar o Javascript
- chamada onload js não funciona com o nó
- Enviando o conteúdo da pasta inteira para o cliente com expresso
- Node JS não veiculando a imagem estática