
Я пытаюсь разместить приложение node на www.domain.com/nodeapp. У меня уже есть сайт www.domain.com, размещенный на сервере apache. Я создал обратный прокси в конфигурации apache.
ProxyPass /nodeapp http://localhost:3100/nodeapp
ProxyPassReverse /nodeapp http://localhost:3100/nodeapp
Это приложение MEAN
структура папок
А ниже мой файл node app.js, в котором я связываю свое приложение Angular в папке dist (которое я создал с помощью 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;
Когда я запускаю файл node server.js на порту 3000. Загружается только index.html, а другие статические файлы выдают ошибку 404.
Я устал добавлять пустой base-href ng build --prod --base href
при сборке приложения Angular, которое правильно загружало приложение со статическими ресурсами, но когда я перемещаюсь в приложении Angular, как www.domain.com/nodeapp/auth/login
напрямую в URL, путь к статическому файлу отображается, www.domain.com/nodeapp/auth/login/style.css
что, очевидно, неверно. Ссылки API для eg ( http://localhost:3100/api/posts
) не работают при доступе через обратный прокси.
Что я делаю не так? Есть ли работающее руководство, где MEAN-приложение размещается рядом с сервером Apache?