Expressjs托管具有视图的angular应用程序-can't重新加载

Expressjs host angular app with views - can't reload

本文关键字:新加载 加载 -can 视图 应用程序 angular Expressjs      更新时间:2023-09-26

所以,我有这个expressjs配置:

app.use(express.static(path.join(__dirname,"../../site")));
app.use("/src", express.static(path.join(__dirname,"../cms/src")));
app.get('/', function(req, res){
  res.sendfile(site_public+'/index.html');
});

app.get("/admin/", function(req, res) {
    res.sendFile(path.join(__dirname,"../cms/index.html"));
});
app.get("/admin/css/*", function(req, res) {
   res.sendFile(path.join(__dirname,"../css/"+req.url.split("/admin/css")[1]));
});

app.get("/admin/*", function(req, res) {
    res.sendFile(path.join(__dirname,"../cms/"+req.url.split("/admin/")[1]));
});

app.get("/:page", function(req, res) {
    res.sendFile(site_public+"/"+req.params.page+".html")
});

正如您所看到的,它包含两个内容:一个site_public文件夹和一个admin文件夹。/admin是一个angularjs应用程序,具有视图。管理路由作为链接或角度重路由工作得相对较好。悬停,如果我在/admin/dash这样的角度路线上点击refres,我会得到404,就像最后一条管理路线一样。我该怎么解决这个问题?

我自己修复了它。对于任何可能需要的人来说,最终解决方案都是这样的。

app.use(express.static(path.join(__dirname,"../../site")));
app.use("/admin/", express.static(path.join(__dirname,"../cms")));
app.use("/admin/src", express.static(path.join(__dirname,"../cms/src")));
app.use("/admin/css", express.static(path.join(__dirname,"../css")));
app.get("/admin/*", function(req, res) {
    res.sendFile(path.join(__dirname,"../cms/index.html"));
});
app.get('/', function(req, res){
  res.sendfile(site_public+'/index.html');
});
app.get("/:page", function(req, res) {
    res.sendFile(site_public+"/"+req.params.page+".html")
});