无法加载资源(css / js)AWS Lambda Express节点

时间:2017-06-15 15:38:42

标签: html node.js amazon-web-services express aws-lambda

我正在使用AWS Lambda构建一个Web应用程序。我可以在本地运行应用程序,但是当我在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/

根据我的研究,让app坐在lambda函数中不需要特殊权限来访问这些资源。

1 个答案:

答案 0 :(得分:-1)

在查看我的CloudWatch日志后,我意识到当我请求“/assets/css/bootstrap.css”时,不会调用lambda函数。这帮助我意识到我首先需要配置我的API网关来处理代理。默认情况下,大多数API网关只有“/”下的GET和POST。要启用,请创建代理资源并创建一个get方法,以触发您的快速应用程序所在的lambda函数。这将使您的所有API网关在根目录中获取请求。