Víte, že pro každý požadavek posíláte index.html?
Změňte toto:
router.get('*', function(request, response) {
response.sendfile('./public/index.html');
});
K tomu:
app.use(express.static(path.join(__dirname, 'public')));
Nebo toto:
app.use('/path', express.static(path.join(__dirname, 'public')));
pokud jste šli poskytovat statické soubory pod jinou cestou než /
.
Nezapomeňte na začátek souboru přidat toto:
var path = require('path');
Také se ujistěte, že máte skutečně public
adresář na správném místě a že obsahuje index.html
a další požadované soubory.
Samozřejmě můžete mít jiné problémy, protože jste zjevně nezahrnuli celý svůj kód.
Podívejte se na můj příklad na GitHubu, pokud chcete poskytovat statické soubory pomocí Express:
- https://github.com/rsp/node-express-static-example
Je to funkční příklad, který si můžete stáhnout, umístit svůj vlastní statický obsah do správného adresáře a upravit si ho podle svých potřeb.
Další příklady, jak udělat totéž s Express a bez něj:
- https://github.com/rsp/node-static-http-servers
Další související odpovědi:
- Jak zobrazit obrázek pomocí nodejs
- Při přesměrování JavaScriptu se nepodařilo načíst zdroj ze stejného adresáře
- Volání onload js nefunguje s uzlem
- Odesílání celého obsahu složky klientovi pomocí Express
- Uzel JS nezobrazuje statický obrázek