我想有些人在Parse.com网站托管工作或玩过单页应用程序。我有一个webapp,它是一个带有主index.html文件的SPA。我在应用程序中使用pushState,我希望用户可以在我们网站上输入某个URL的地方重定向到index.html,例如'/ profile','/ projects'等等。
我使用Express在本地计算机上配置它,但由于Parse有自己的规则和环境,我认为我需要一个可以使用它的特定解决方案。
请告知。
答案 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();