我在/opt/myapp目录中运行一个节点应用程序。我有haproxy在前面的内容打开path_beg/myapp后端服务器正在侦听端口3000
目录结构:
/opt/myapp
index.js
package, modules
static
public
myfile.html
const express = require("express");
const path = require('path');
const app = express();
app.listen(3000, () => console.log("listening on 3000 "+__dirname+" "+process.cwd()));
app.use(express.static(__dirname+'/static/public')); //nope
//app.use(express.static('..'+'/static/public')); //nope
//app.use(express.static(path.join(__dirname, '/static/public/'))); //nope
其中__dirname输出/opt/myapp,process.cwd((输出/opt/myapp
我尝试了concontentation和path.join,得到了相同的结果。无法获取myfile.html
直接在服务器上卷曲http://host.com:3000通过返回页面来工作,但是从浏览器(在haproxy前面(,http://host.com/myapp/myfile.html不起作用。
我想我可以在后台从haproxy中的路径中删除/myapp,但有没有一种方法可以使用express来说明基本目录?
这很有效:
app.use('/myapp/',express.static('static/public'));