Node.js 解析托管静态文件URL别名

Node.js 解析托管静态文件URL别名,node.js,.htaccess,mod-rewrite,ember.js,parse-platform,Node.js,.htaccess,Mod Rewrite,Ember.js,Parse Platform,我试图通过返回一个特定的静态文件来设置解析宿主(基于node.js)来处理某些URL。这是为了使它能够与基于Ember.js历史的路由()一起工作 例如:我希望以下所有URL加载根index.html,而无需执行301重定向: domain.com/search domain.com/about domain.com/some other route 这在Apache.htaccess重写规则中很容易实现。有没有类似的东西可以用于解析托管?或者我必须编写自己的代码来处理这些URL并以某种方式返回

我试图通过返回一个特定的静态文件来设置解析宿主(基于node.js)来处理某些URL。这是为了使它能够与基于Ember.js历史的路由()一起工作

例如:我希望以下所有URL加载根
index.html
,而无需执行301重定向:

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

这在Apache.htaccess重写规则中很容易实现。有没有类似的东西可以用于解析托管?或者我必须编写自己的代码来处理这些URL并以某种方式返回所需的文件吗


如果我的描述不清楚,请告诉我,我将尝试添加更多详细信息。

我找到了这个答案。您可以更改文件名。如果filename==“search”,那么filename=“index.html”,这样您将得到一个不同的文件。

在解析时使用Express,让它将您的
index.html
呈现为一个
EJS
视图。 将您的
index.html
复制到
cloud/views/index.ejs
或将其sym链接到同一位置

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


我一直在寻找这个问题的答案,结果发现在堆栈溢出方面,语法分析器似乎比语法分析器更活跃。找到了这个答案。

你应该小心。加载同一页面的许多URL将导致内容重复,这不是您想要的want@JustinIurman我明白。但这正是Ember文档在上面的链接中所说的:“请记住,您的服务器必须按照此处定义的所有路由为Ember应用程序提供服务”。在您的代码示例中,GET“/*”不会干扰加载公共目录中的css和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();