0

I am using Meteor as the backend to my ionic+angular webApp. I'm deploying the app using meteor-up. I have put my entire app in the Meteor /public folder and it works find when I access it like this:

http://localhost:3000/index.html

How can I set/rewrite/redirect the Meteor default page so I can load the same page from:

http://localhost:3000/ or http://localhost:3000/myApp

without losing my Meteor server

1 Answer 1

0

Here is the complete solution:

fs = Npm.require('fs');
crypto = Npm.require('crypto');
WebApp.connectHandlers.use("/", function(req, res, next) {
  var data, filepath;
  if (req.method !== 'GET') {
    return next();
  }
  filepath = process.env.PWD + '/public/index.html';

  // serve default file, with eTag, 
  // i.e. http://localhost:3000/
  fs.readFile(filepath, function(err, buf) {
    var eTag;
    eTag = crypto.createHash('md5').update(buf).digest('hex');
    if (req.headers['if-none-match'] === eTag) {
      res.writeHead(304, 'Not Modified');
      return res.end();
    }
    res.writeHead(200, {
      'ETag': eTag,
      'Content-Type': 'text/html'
    });
    return res.end(buf);
  });
  return;

  // serve default file, without eTag or caching headers
  // i.e. http://localhost:3000/
  data = fs.readFileSync(filepath);
  res.writeHead(200, {
    'Content-Type': 'text/html'
  });
  res.write(data);
  return res.end();

  // redirect to default file
  // i.e. http://localhost:3000/index.html
  res.writeHead(301, {
    'Location': '/index.html'
  });
  return res.end();
});
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.