2016-09-26 1 views
0

Ceci est ma structure du projet:Express: service de fichiers statiques travail non

-backend 
-server.js 
-www 
-index.html 
-app.css 
-bundle.js 

Je reçois un problème express ne pas être en mesure de servir les fichiers statiques avec urls ayant 2 + slash comme celui-ci

localhost:3000/product/1 

mais il fonctionne très bien pour les URL avec seulement 1 slash:

localhost:3000/register 
localhost:3000/home 

problème se produit car il essaie toujours d'obtenir

localhost: 3000/product/1/app.css

et

localhost: 3000/product/1/bundle.js

quand aller à

localhost: 3000/produit/1

C'est ma configuration en server.js:

app.use(express.static(path.resolve(__dirname, '../www'))); 
app.get('*', function (request, response){ 
    response.sendFile(path.resolve(__dirname, '../www', 'index.html')) 
}); 
+1

Assurez-vous, dans le code HTML, que vous faites un lien vers "/app.css" au lieu de simplement "app.css". Ce dernier recherchera app.css sur l'URL actuelle au lieu de la racine. Cela ne semble pas être un problème avec vos ressources statiques. – danneu

+1

D'accord avec @danneu. Si vous faites référence aux fichiers statiques avec le contexte racine en utilisant /filename.ext, tout devrait fonctionner correctement. –

+0

J'utilise en fait "./app.css" et "./bundle.js" dans mon fichier d'index. Je pense que cela ne devrait pas causer le problème. – sharius2301

Répondre

0

j'utilisais "./bundle.js" et "./app.css" dans index.html. Changé à "/bundle.js" et "/app.cs" et l'a fonctionné. Merci aux commentaires en post!