정적파일.config(NodejsPlayGround\ .elasticbeanstalk\staticfiles.config) 파일
option_settings:
aws:elasticbeanstalk:container:nodejs:staticfiles:
/public: public
index.hbs(NodejsPlayGround\views\index.hbs) 파일
<!DOCTYPE html>
<html>
<head>
<title>NodeSeverTest</title>
<script src="js/client.js"></script>
</head>
<body>
<h1>Hello</h1>
</body>
</html>
server.js(NodejsPlayGround\server.js) 파일
'use strict';
const express = require('express');
const path = require('path');
const app = express();
const port = process.env.PORT || 3000;
const views_path = path.join(__dirname, 'views');
const static_path = path.join(__dirname, 'public')
app.set('view engine', 'hbs');
app.set('views', views_path);
app.get('', (req, res) => {
res.render('index', {
title: 'Weather App',
name: 'ArunKumar Arjunan'
}
);
});
app.listen(port, () => {
console.log('server started on port ' + port);
});
클라이언트.js(NodejsPlayGround\public\js\client.js) 파일:
console.log('client side java script file is loaded');
이제 eb 배포를 사용하여 이를 배포하면 client.js가 로드되지 않고 404 오류가 반환됩니다(리소스 로드 실패: 서버가 index.hbs에서 404(찾을 수 없음) 상태로 응답했습니다.
나는 인터넷에서 모든 단계를 시도했지만 이를 위해 이틀을 낭비했습니다.
아무도 나를 도와줄 수 있나요? 이것은 버그인가요, 아니면 제가 여기서 뭔가 잘못하고 있는 건가요?
답변1
이에 대한 AWS 설명서와 달리 폴더 경로에는 앞에 슬래시가 필요하다는 것을 알았습니다. 즉, ( 단지 아님 ) 또는 (단지 아님 ) /public
에 매핑합니다./public
public
/static
/static
static
/var/app/currentstatic
내 EB 인스턴스에서 nginx 오류 로그와 conf 파일을 검사하여 이 사실 을 알아냈는데, 둘 다 /var/app/current/static
.