2014-12-07 65 views
4

如何完全关闭静态资产?我想我可能会这样做:禁用Sails.js静态资产服务

module.exports = { 

// Init custom express middleware 
express: { 

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

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

+0

您好!你能找到解决这个问题的办法吗? – 2015-01-21 09:44:50

+0

@SlavaFominII不要,除非下面的答案由jorgecasar为你工作。根据他的说法,也许可以在应用程序创建后修改grunt任务,甚至可以通过编程方式打开和关闭资源。也可以在脚本中做一些资产文件夹的符号链接,尽管这并不是很好,因为它不会独立于平台,并且在我认为应用程序关闭时需要某种逆转。 – light24bulbs 2015-01-22 13:15:21

+1

谢谢@ light24bulbs!请参阅主要Sails.js撰稿人@ sgress454的答案。我认为它应该解决问题! – 2015-01-23 09:34:52

回答

3

您可以通过从middleware.order/config/http.jswww middleware关闭静态资产的服务:

module.exports.http = { 

    middleware: { 

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

    } 
}; 
4

您可以创建没有一个前台应用程序帆与标志--no-前端

sails new [appName] --no-frontend 

这将避免产生资产文件夹,然后咕噜任务。

+0

啊,这很酷。但在我的情况下,我正在寻找一种在运行时以编程方式禁用它的方法。我想要有两台同一台服务器,一台服务于API,另一台服务于基于环境变量的资产。我意识到如果API服务器在我的情况下也提供静态资产,我就不会使用它的那部分。这是真正需要关闭API的资产服务器,我可以通过禁用自动路由和基于变量的自定义路由来实现这一点。感谢您的输入!我相信这会帮助别人 – light24bulbs 2015-01-22 13:11:39