首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置Express for Aurelia Routing?

如何设置Express for Aurelia Routing?
EN

Stack Overflow用户
提问于 2017-02-26 11:47:19
回答 1查看 274关注 0票数 1

如何为express指定一个catchall或实际上是一个catchmost,以便当用户在实际包含在应用程序包中的页面上选择刷新时,GET不会失败。

home.html

代码语言:javascript
复制
<a href="profile">profile</a>

app.js

代码语言:javascript
复制
 config.map([
      { route: ['', 'home'], name: 'home', moduleId: 'home' },
      { route: ['profile'], name: 'profile', moduleId: './profile/profile'}
    ]);

如果我单击profile链接,URL将显示localhost://profile,页面不执行GET即可正确呈现,因为所请求的资源已捆绑在初始GET中。但是假设我使用localhost://profile刷新页面,然后它向服务器发出对该页面的GET请求。

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

代码语言:javascript
复制
app.use('/', express.static(__dirname));
app.use('/profile', express.static(__dirname));

它工作正常。我期待着某种类型的捕获所有格式,这样我就不必为捆绑了所有路由的应用程序添加所有可能的路由。类似于:

代码语言:javascript
复制
app.use('/*', express.static(__dirname));

然后执行以下操作来捕获另一个应用程序的GET

代码语言:javascript
复制
app.use('/othercoolapp/*', express.static(__dirname)+'/othercoolapp/');

但它不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 09:04:46

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

在引导Express服务器的文件中的app.listen或等效代码行上,添加类似以下内容:

代码语言:javascript
复制
app.get('*', function(request, response){
  response.sendFile(path.join(__dirname + '/index.html'));
});

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42464509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档