【问题标题】:Parse Hosting static file URL aliases解析托管静态文件 URL 别名
【发布时间】:2014-09-21 01:58:04
【问题描述】:

我正在尝试设置 Parse 托管(基于 node.js)以通过返回特定的静态文件来处理某些 URL。这是为了使其与 Ember.js 基于历史的路由 (http://emberjs.com/guides/routing/specifying-the-location-api/) 一起使用。

例如:我希望以下所有 URL 加载根 index.html 而不进行 301 重定向:

domain.com/search domain.com/about domain.com/some-other-route

这在 Apache .htaccess 重写规则中很容易实现。我可以在 Parse 托管中使用类似的东西吗?还是我必须编写自己的代码来处理这些 URL 并以某种方式返回我想要的文件?

如果我的描述不清楚,请告诉我,我会尝试添加更多细节。

【问题讨论】:

  • 你应该小心。加载同一页面的多个 URL 会导致内容重复,这不是您想要的
  • @JustinIurman 我明白这一点。但这正是 Ember 文档所说的:“请记住,您的服务器必须在此处定义的所有路由上为 Ember 应用程序提供服务”,来自上述链接。

标签: node.js .htaccess mod-rewrite ember.js parse-platform


【解决方案1】:

在 Parse 上使用 Express 并让它呈现您的 index.html,就好像它是 EJS 视图一样。 将您的 index.html 复制到 cloud/views/index.ejs 或将其符号链接到同一位置。

// cloud/main.js
require('cloud/app.js');

然后

// cloud/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

【讨论】:

  • 在您的代码示例中,GET '/*' 不会干扰加载公共目录中的 css 和 js 文件吗?还是公用文件夹的优先级高于快速路由?
  • 没关系。我测试了,似乎公共目录有优先权。
【解决方案2】:

我找到了这个答案。您可以更改文件名。如果 filename=="search" 然后 filename="index.html",这样你得到一个不同的文件。 Link

【讨论】:

    猜你喜欢
    • 2012-01-30
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2018-08-18
    相关资源
    最近更新 更多