在Parse.com上将所有URL重定向到index.html

时间:2015-06-10 11:18:22

标签: javascript node.js express parse-platform

我想有些人在Parse.com网站托管工作或玩过单页应用程序。我有一个webapp,它是一个带有主index.html文件的SPA。我在应用程序中使用pushState,我希望用户可以在我们网站上输入某个URL的地方重定向到index.html,例如'/ profile','/ projects'等等。

我使用Express在本地计算机上配置它,但由于Parse有自己的规则和环境,我认为我需要一个可以使用它的特定解决方案。

请告知。

1 个答案:

答案 0 :(得分:0)

让Express快速呈现您的index.html,就像它是EJS视图一样。 将index.html复制到cloud/views/index.ejs或将其连接到同一位置。

// app.js

var express = require('express');

var app = express();
app.set('views','cloud/views');
app.set('view engine', 'ejs');

app.get('/*', function(req, res) {
    res.render('index.ejs');
});

app.listen();

我一直在寻找这个问题的答案,结果发现Google Group for Parse.com似乎比Stack Overflow上的Parsers更活跃。找到了这个答案here。替换' YOUR_URL'用你的网址。

******* 编辑 *******

我现在在同一个Google网上使用第二个答案,因为它看起来效果更好:

var express = require('express');
var app = module.exports = express();
app.express = express;

//push state interceptors
var pushUrlPrefixes = [""];
var index = null;

function getIndex(cb) {
  return function(req, res) {
    Parse.Cloud.httpRequest({
      url: 'YOUR_URL',
      success: function(httpResponse) {
        index = httpResponse.text;
        cb(req, res);
      },
      error: function(httpResponse) {
        res.send("We're very busy at the moment, try again soon.");
      }
    });
  }
}

pushUrlPrefixes.forEach(function(path) {
  app.get("/"+path+"*", getIndex(function(req, res) {
    res.set('Content-Type', 'text/html');
    res.status(200).send(index);
  }));
});

//redirect requests here, instead of parse hosting
app.listen();