2017-06-15 63 views
1

我正在使用AWS Lambda構建Web應用程序。我可以在本地運行應用程序,但是當我在AWS上部署應用程序時,應用程序無法加載靜態資源。加載資源失敗(css/js)AWS Lambda Express節點

app.js

app.use(express.static(__dirname + '/public')); 
app.get('/', function(req, res) { 
    res.sendFile(path.join(__dirname + '/public/index.html')); 
}); 

,在我的index.html,這是我引用的資源

<link href="assets/css/bootstrap.css" rel="stylesheet"> 
<link href="assets/css/gradients.css" rel="stylesheet"> 
<script src="assets/js/angular.min-1.4.7.js"></script> 

我的目錄結構是基於

My App/ 
    |app.js 
    |index.js 
    |public/ 
    |index.html 
    |assets/ 
     |css/ 
     |js/ 

我的研究,讓應用坐在一個lambda函數中,不需要特殊的權限來訪問這些資源。

回答

0

查看我的CloudWatch日誌後,我意識到當我請求「/assets/css/bootstrap.css」時,不會調用lambda函數。這幫助我意識到我首先需要配置我的API網關來處理代理。默認情況下,大多數API網關只會在「/」下有GET和POST。要啓用,創建一個代理資源並創建一個get方法來觸發您的快速應用程序正在使用的lambda函數。這將使您的所有API網關在根目錄內執行請求。