如何为Aurelia路由设置Express?

时间:2017-02-26 03:47:19

标签: express aurelia aurelia-router

如何为快递指定捕获或实际捕获[大多数]因此当用户选择实际包含在应用程序包中的页面上的刷新时,GET不会失败。

home.html的

<a href="profile">profile</a>

app.js

 config.map([
      { route: ['', 'home'], name: 'home', moduleId: 'home' },
      { route: ['profile'], name: 'profile', moduleId: './profile/profile'}
    ]);

如果单击配置文件链接,则URL会显示localhost://配置文件,并且页面呈现正确而不执行GET,因为请求的资源已捆绑在初始GET中。但是让我说我​​使用localhost:// profile刷新页面,然后它为该页面发出服务器GET请求。

如果在服务器上我指定了类似的内容:

app.use('/', express.static(__dirname));
app.use('/profile', express.static(__dirname));

它运作正常。我期待某种类型的捕获所有格式化,所以我不必为捆绑所有路由的应用添加所有可能的路由。类似的东西:

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

然后以下内容为另一个应用程序捕获GET&#c>

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

但它不起作用......

1 个答案:

答案 0 :(得分:1)

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

在引导Express服务器的文件中的app.listen或同等代码行之上,添加如下内容:

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

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