【问题标题】:Sails.js Single Page Application (SPA) — redirect all missing/unused routes to a single controller actionSails.js 单页应用程序 (SPA) — 将所有丢失/未使用的路由重定向到单个控制器操作
【发布时间】:2025-12-25 05:45:10
【问题描述】:

我正在使用 Sails.js 作为后端开发单页应用程序 (SPA)。我想要的只是将所有路由重定向到单个控制器操作。

但是,当我执行以下操作时:

// config/routes.js
module.exports.routes = {
  'GET *': 'MainController.application'
};

所有请求都被重定向到我的应用程序路由,即使对于 CSS/JavaScript 等静态文件也是如此。当没有其他方法处理它时,是否有一种简单的方法可以回退到我的应用程序路由?

我想要:

  1. 要直接提供的所有静态文件(JS、CSS、HTML 部分)
  2. 按原样处理所有特定路线
  3. 在其他情况下重定向到单个入口点控制器

【问题讨论】:

    标签: javascript node.js sails.js single-page-application


    【解决方案1】:

    在彻底重新阅读文档后,我发现了一个skipAssets 路由参数。

    这是我的新配置:

    // config/routes.js
    module.exports.routes = {
      'GET *': {
        controller: 'MainController',
        action: 'application',
        skipAssets: true
      }
    };
    

    看起来它正在按要求工作。

    【讨论】:

    • 还要记住,在config/routes.js 文件中,顺序很重要——所以请始终将更动态的路线放在底部,否则更具体的路线将无法匹配。
    • 好信息 sgress454 过去我被这个发现了。很容易忘记。
    • 适用于 .css 和 .js,但对于套接字和 RESTful URL,它们都被重定向到 Index.html(或 MainController.action 等)。我希望有更好的方法来做到这一点。
    最近更新 更多