如何为Aurelia路由设置Express?

如何为Aurelia路由设置Express?,express,aurelia,Express,Aurelia,如何为express指定catchall或catch[most],以便用户在应用程序包中实际包含的页面上选择刷新时,获取不会失败 home.html <a href="profile">profile</a> 如果我点击profile链接,URL会显示localhost://profile 并且页面在不执行GET的情况下正确呈现,因为请求的资源被捆绑在初始GET中。但假设我用localhost://profile,然后它对该页发出服务器GET请求 如果在服务器上,我指定

如何为express指定catchall或catch[most],以便用户在应用程序包中实际包含的页面上选择刷新时,获取不会失败

home.html

<a href="profile">profile</a>
如果我点击profile链接,URL会显示localhost://profile 并且页面在不执行GET的情况下正确呈现,因为请求的资源被捆绑在初始GET中。但假设我用localhost://profile,然后它对该页发出服务器GET请求

如果在服务器上,我指定如下内容:

app.use('/', express.static(__dirname));
app.use('/profile', express.static(__dirname));
它工作正常。我期待着某种类型的“一网打尽”格式,这样我就不必为捆绑了所有路由的应用程序添加所有可能的路由。比如:

app.use('/*', express.static(__dirname));
然后,使用以下命令捕获另一个应用程序的GET

app.use('/othercoolapp/*', express.static(__dirname)+'/othercoolapp/');

但是它不起作用…

您遇到的这个问题适用于启用pushState路由的每个页面应用程序框架和库

在您的
应用程序上方。在引导您的Express server的文件中,听一听
或等效代码行,添加如下内容:

app.get('*', function(request, response){
  response.sendFile(path.join(__dirname + '/index.html'));
});

一般的想法是,这种通用通配符路由将捕获所有URL请求并发送
index.html
文件。这允许Aurelia处理自己的路由。

您不必在服务器中创建路由。您只需配置pushState导航。比如我有config.options.pushState=true;但是,当用户在浏览器上点击“刷新”,URL中有客户端路由时,它将从服务器请求该路由。(由于现在已经捆绑在一起,所以没有找到)看起来像是其他人遇到了同样的问题,《奥雷利亚》的作者得出了同样的结论。我需要为所有内部客户端URL提供基础应用。我只是不知道如何在服务器上的应用程序中为路由指定某种类型的正则表达式捕获。
app.get('*', function(request, response){
  response.sendFile(path.join(__dirname + '/index.html'));
});