如何在AWS Bitnami服务器上使用Node.js Express发送静态文件(CSS,JS)?

时间:2019-01-22 02:21:14

标签: node.js amazon-web-services express mean-stack bitnami

我正在通过AWS使用bitnami开发MEAN应用程序,但这是我第一次这样做。我不知道如何在公共文件夹(如css和js)中发送静态文件。

我觉得我已经尝试过配置apache代理并在路径中包括或不包括“ public”的所有组合,但是我必须从根本上缺少一些东西。我已经看过有关该主题的其他问答,但是我认为我在下面尝试的使用这些方法。因为我要将http://public-ip/test3转发到节点服务器,所以不知道它是否与代理有关。

bitnami-apps-prefix.conf文件:

ProxyPass /test3 http://127.0.0.1:3100/
ProxyPassReverse /test3 http://127.0.0.1:3100/

nodejs app.js文件-在各个地方都经过足够公开的尝试

var express = require("express");
const path = require('path');
var app = express();

app.use(express.static(path.join(__dirname, '/public')));
app.get("/", function(req,res){
    res.sendFile(__dirname+"/public/p4.1.html");
});
app.listen(3100,'localhost',function(){
console.log("server has started");
});

p4.1.html文件-我已经尝试过在路径中使用public和不使用public。

<html><head>
<link rel="stylesheet" href="public/styles.css">
<script src="public/functions.js"></script>
</head>

p4.1.html,styles.css和functions.js存储在公用文件夹中。公用文件夹与app.js文件位于同一路径。

确实显示了html页面,但我收到了css和js的404错误:http://public-ip/public/functions.js net :: ERR_ABORTED 404(未找到)

这是我的代码还是代理中的某些内容?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

因此解决方案是在HTML文件的url中放置test3而不是public。

line