我已经使用aws eb deploy部署了nodejs应用程序,client.js没有加载到index.hbs文件中并返回404错误(无法加载资源:服务器响应状态为404(未找到))< / p>
我尝试了互联网的所有步骤,为此浪费了两天。
有人可以在这里帮助我吗?我在这里做错什么了?
我已经在此stackover流页面Elastic Beanstalk Static Folder 403 Error中尝试过该解决方案,但是没有运气
staticfiles.config (NodejsPlayGround.elasticbeanstalk \ staticfiles.config)文件
选项设置:
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);
});
client.js (NodejsPlayGround \ public \ js \ client.js)文件:
console.log('client side java script file is loaded');
client.js文件需要加载到index.hbs文件中
答案 0 :(得分:0)
我发现与AWS文档相反,文件夹路径也需要一个斜杠-即您将/public
映射到/public
(而不仅仅是public
)或{{ 1}}到/static
(不仅是/static
)。
我通过检查EB实例上的nginx错误日志和conf文件来弄清这一点,并且都表明它正在static
中而不是/var/app/currentstatic
中查找我的静态文件。