我在Docker Container上运行了一个应用程序,并且使用了这个应用程序:
我的应用在根文件夹www.mycoolurl.com/
下运行良好。但我在我的根上运行了其他应用程序,所以我创建了www.mycoolrul.com/coolsubpath
app.use(express.static(__dirname + "/dist"));
app.get("/*", function(req, res) {
res.sendFile(__dirname + "/dist/index.html");
});
upstream coolapp{
server 1.1.1.1:8000;
}
location /coolsubpath {
# Upstream
proxy_pass http://coolapp/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
client_max_body_size 3M;
}
我对此的第一次体验非常糟糕......每个请求都试图安装我的App,Vendor和Manifest(webpack的东西,只需要挂载在root上)。所以我最终这样做了:
output: {
filename: "[name].[chunkhash].js",
path: resolve(__dirname, "../dist"),
chunkFilename: "[chunkhash].js",
publicPath: "/"
},
现在只有root会加载资源,但是...当我转到www.mycoolrul.com/coolsubpath
时,只找到了我的index.html并且......
资产正在寻找我的前任。 www.mycoolurl.com/app.761c16f76fcba6601577.js/
代替www.mycoolrul.com/coolsubpath/app.761c16f76fcba6601577.js/
。
我测试了将React Router 4
子路径...和我的Express.js
子路径名添加到.get
和.use
方法。是的,它有效。但现在我希望我的子路径代替coolsubpath
,如前所述。 mynewsupercoolsubpath
。我必须重新构建和部署应用程序吗?。
我尝试重写request url
但没有运气,我知道代码错了......但我不知道该怎么做
if ($http_referer ~* ^www.mycoolrul.com/coolsubpath ) {
set $request_url /coolsubpath/$1;
}