Czy wiesz, że wysyłasz index.html dla każdego żądania?
Zmień to:
router.get('*', function(request, response) {
response.sendfile('./public/index.html');
});
Do tego:
app.use(express.static(path.join(__dirname, 'public')));
Albo to:
app.use('/path', express.static(path.join(__dirname, 'public')));
jeśli poszedłeś do obsługi plików statycznych pod inną ścieżką niż /
.
Pamiętaj, aby dodać to na początku pliku:
var path = require('path');
Upewnij się również, że faktycznie masz public
katalog we właściwym miejscu i zawiera plik index.html
i inne wymagane pliki.
Oczywiście możesz mieć inne problemy, ponieważ najwyraźniej nie zamieściłeś całego kodu.
Zobacz mój przykład na GitHub, jeśli chcesz wyświetlać statyczne pliki za pomocą Express:
- https://github.com/rsp/node-express-static-example
Jest to działający przykład, który możesz pobrać, umieścić własną zawartość statyczną we właściwym katalogu i dostosować do własnych potrzeb.
Więcej przykładów, jak zrobić to samo z Express i bez:
- https://github.com/rsp/node-static-serwery-http
Inne powiązane odpowiedzi:
- Jak wyświetlać obraz za pomocą nodejs
- Nie udało się załadować zasobu z tego samego katalogu podczas przekierowywania JavaScript
- wywołanie js onload nie działa z węzłem
- Wysyłanie całej zawartości folderu do klienta ekspresowo
- Węzeł JS nie obsługuje obrazu statycznego