Назад | Перейти на главную страницу

Развернуть приложение стека MEAN в подкаталоге

Я пытаюсь разместить приложение узла на 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, например, (http://localhost:3100/api/posts) не работает при доступе через обратный прокси.

Что я здесь делаю не так? Есть ли какое-либо рабочее руководство, где приложение MEAN размещается вместе с сервером apache?