【问题标题】:Disable Sails.js static asset serving禁用 Sails.js 静态资产服务
【发布时间】:2014-12-07 01:17:23
【问题描述】:

如何完全关闭静态资源?我在想我也许可以做到:

module.exports = {

// Init custom express middleware
express: {

    customMiddleware: function (app) {
        app.use(express.static(__dirname + '/some_empty_folder'));

但这对我来说似乎并不好。有没有办法在配置中关闭静态资产服务?

【问题讨论】:

  • 您好!你找到解决这个问题的办法了吗?
  • @SlavaFominII 不,除非 jorgecasar 下面的答案对您有用。根据他所说,也许可以在创建应用程序后修改 grunt 任务,甚至可以通过编程方式打开和关闭资产。也可以在脚本中对资产文件夹进行某种符号链接,尽管这不是很好,因为它不是独立于平台的,并且我认为在应用关闭时需要某种反转。
  • 谢谢@light24bulbs!请参阅 Sails.js 主要贡献者 @sgress454 的答案。我认为它应该可以解决问题!

标签: node.js express sails.js


【解决方案1】:

您可以使用 --no-frontend 标志创建没有前端的 Sails 应用

sails new [appName] --no-frontend

这将避免创建资产文件夹和 grunt 任务。

【讨论】:

  • 啊,这很酷。但就我而言,我正在寻找一种在运行时以编程方式禁用它的方法。我想要对同一台服务器进行两次部署,一次为 API 提供服务,另一次为基于环境变量的资产提供服务。我意识到在我的情况下,如果 API 服务器也提供静态资产也没关系,我只是不会使用它的那一部分。这是真正需要关闭 API 的资产服务器,我可以通过禁用自动路由和基于变量的自定义路由来做到这一点。感谢您的输入!我相信这会对某人有所帮助
【解决方案2】:

您可以通过从middleware.order 中的middleware.order 中删除www middleware 来关闭静态资产服务/config/http.js

module.exports.http = {

  middleware: {

   order: [
      'startRequestTimer',
      'cookieParser',
      'session',
      'bodyParser',
      'handleBodyParserError',
      'compress',
      'methodOverride',
      'poweredBy',
      '$custom',
      'router',
      // 'www',
      'favicon',
      '404',
      '500'
    ]

  }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 2011-07-13
    • 2017-02-15
    • 2021-11-10
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多