2014-12-07 95 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