Cela me rend fou ... J'ai ajouté une route dans la définition de mon routeur pour servir un fichier robots.txt de texte brut. Je ne pense pas que j'ai un catchall avant la route /robots.txt comme les autres routes vers/mobile et/map fonctionnent comme prévu. Sur ma machine locale, le fichier /robots.txt fonctionne correctement. Ce n'est que lorsqu'il est déployé sur le serveur que cette route ne fonctionne pas.robots.txt ne s'affiche pas via node.js routes envoyer du texte brut
router.get('/', function (req, res) {
res.render('index');
});
router.get('/mobile', function (req, res) {
res.render('mobile');
});
router.get('/map', function (req, res) {
res.render('map');
});
router.get('/robots.txt', function (req, res) {
res.type('text/plain');
res.send('User-agent: *');
});
Cela fonctionne bien sur ma machine locale, mais pas lorsqu'ils sont déployés http://geolytix.co.uk/robots.txt
Error: Not Found
at /usr/share/geolytix/app.js:28:13
at Layer.handle [as handle_request] (/usr/share/geolytix/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/share/geolytix/node_modules/express/lib/router/index.js:312:13)
at /usr/share/geolytix/node_modules/express/lib/router/index.js:280:7
at Function.process_params (/usr/share/geolytix/node_modules/express/lib/router/index.js:330:12)
at next (/usr/share/geolytix/node_modules/express/lib/router/index.js:271:10)
at /usr/share/geolytix/node_modules/express/lib/router/index.js:618:15
at next (/usr/share/geolytix/node_modules/express/lib/router/index.js:256:14)
at Function.handle (/usr/share/geolytix/node_modules/express/lib/router/index.js:176:3)
at router (/usr/share/geolytix/node_modules/express/lib/router/index.js:46:12)
Mon estimation initiale était que cela a quelque chose à voir avec le proxy de nginx à mon serveur de noeud, mais je peux accéder à le site en allant directement à l'adresse IP. Pourtant, la route robots.txt échoue.
http://139.59.161.58:3000/robots.txt
Edit:
Ceci est la ligne 28 de mes app.js
Etes-vous sûr redémarré votre serveur de nœud après avoir ajouté cette route? Essayez de demander '/ robots.txt' à Express directement (sur votre serveur) au lieu de passer par nginx. – robertklep
Je suppose que c'est un problème d'interception de fichier statique. Pouvez-vous montrer nginx config, en particulier la partie 'location' dans' server'? – Nevertheless
Ce n'est pas le paramètre nginx. Je peux ouvrir le site à partir de l'adresse IP mais le fichier robots.txt ne s'ouvre pas. http://139.59.161.58:3000/robots.txt –