如何仅在开发环境中使用Sails.js提供静态文件?

问题描述 投票:1回答:1

在生产服务器上,我们使用nginx为Sails.js应用程序提供静态文件,但是在开发环境中,我们希望Sails为我们提供静态文件。 这将允许我们跳过开发人员机器上的nginx安装和配置。

我该怎么做呢?

node.js sails.js assets middleware
1个回答
0
投票

我将向您展示如何使用Node.js / Express的serve-static模块解决此问题。

1)。 首先为开发环境安装模块: npm i -D serve-static

2)。 在api/hooks目录内创建serve-static目录。

3)。 在先前创建的serve-static目录中创建index.js文件。

4)。 向其中添加以下内容:

module.exports = function serveStatic (sails) {

  let serveStaticHandler;

  if ('production' !== sails.config.environment) {
    // Only initializing the module in non-production environment.
    const serveStatic = require('serve-static');
    var staticFilePath = sails.config.appPath + '/.tmp/public';
    serveStaticHandler = serveStatic(staticFilePath);
    sails.log.info('Serving static files from: «%s»', staticFilePath);
  }

  // Adding middleware, make sure to enable it in your config.
  sails.config.http.middleware.serveStatic = function (req, res, next) {
    if (serveStaticHandler) {
      serveStaticHandler.apply(serveStaticHandler, arguments);
    } else {
      next();
    }
  };


  return {};

};

5)。 编辑config/http.js文件并添加先前定义的中间件:

module.exports.http = {
  middleware: {
    order: [
      'serveStatic',
      // ...
    ]
  }
};

6)。 重新启动/运行您的应用程序,例如node ./app.js并尝试获取一个静态文件。 它应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.