MEAN-Stack-App in einem Unterverzeichnis bereitstellen

MEAN-Stack-App in einem Unterverzeichnis bereitstellen

Ich versuche, eine Node-App auf www.domain.com/nodeapp zu hosten. Ich habe die Website www.domain.com bereits auf einem Apache-Server gehostet. Ich habe in der Apache-Konfiguration einen Reverse-Proxy erstellt.

ProxyPass /nodeapp http://localhost:3100/nodeapp
ProxyPassReverse /nodeapp http://localhost:3100/nodeapp

Dies ist MEAN app's Ordnerstruktur Und unten ist meine Node-Datei app.js, in der ich meine Angular-App im Ordner „dist“ verlinke (die ich erstellt habe mit ng build --prod).

app.use("/api/posts", postsRoutes);
app.use("/api/user", userRoutes);
app.use("/api/client", clientRoutes);

app.use("/", express.static(path.join(__dirname, "angular")));

app.use((req, res, next) => {
    res.sendFile(path.join(__dirname, "angular", "index.html"));
});

module.exports = app;

Wenn ich die Datei node server.js auf Port 3000 ausführe, wird nur die Datei index.html geladen und bei anderen statischen Dateien tritt eine 404-Fehlermeldung auf.

Ich habe dann beim Erstellen der Angular-App versucht, einen leeren Basis-Href hinzuzufügen ng build --prod --base href, der die App ordnungsgemäß mit statischen Ressourcen geladen hat, aber wenn ich in der Angular-App navigiere, z. B. www.domain.com/nodeapp/auth/logindirekt in der URL, wird der Pfad der statischen Datei angezeigt, www.domain.com/nodeapp/auth/login/style.csswas offensichtlich falsch ist. Die API-Links für z. B. ( http://localhost:3100/api/posts) funktionieren nicht, wenn über einen Reverse-Proxy darauf zugegriffen wird.

Was mache ich hier falsch? Gibt es eine funktionierende Anleitung, in der eine MEAN-App neben einem Apache-Server gehostet wird?

verwandte Informationen