2017-06-15 25 views
1

AWSラムダを使用してWebアプリケーションを構築しています。ローカルでアプリを実行できますが、AWSにデプロイすると、アプリは静的リソースを読み込めません。リソースを読み込めませんでした(css/js)AWSラムダエクスプレスノード

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/ 

です私の研究では、ラムダ関数にアプリケーションを置くことで、これらのリソースにアクセスするための特別なアクセス権は必要ありません。

答えて

0

CloudWatchのログを見て、 "/assets/css/bootstrap.css"を要求すると、ラムダ関数が呼び出されていないことに気付きました。これは、まず、プロキシを処理するために私のAPIゲートウェイを設定する必要があることに気付きました。デフォルトでは、ほとんどのAPIゲートウェイは「/」の下にGETとPOSTを持つだけです。有効にするには、プロキシリソースを作成し、エクスプレスアプリケーションが置かれているラムダ関数をトリガーするgetメソッドを作成します。これにより、すべてのAPIゲートウェイがルートディレクトリ内でリクエストを受け取ります。

関連する問題