Я создаю приложение внешнего интерфейса на Angular 9. Для обслуживания приложения я использую сервер NodeJs, чтобы принимать все запросы и указывать их на файлы Dist (Build), генерируемые Angular.
Постановка проблемы
Все маршруты, полученные сервером Node, должны быть перенаправлены в файлы приложения Angular.
Проблема, с которой я сталкиваюсь
Когда я пытаюсь использовать какой-либо внутренний маршрут от сервера Node, он возвращает ответ 404. Но страница работает, когда я запускаю Angular в режиме разработки.
Например, localhost:4200/innerPage
(Angular Dev Server) работает, но localhost:8000/innerPage
(Node Server) не работает.
Страница Angular отображается при посещении localhost:8000
хоть. Только внутренние маршруты для Angular не работают на сервере.
NodeJS код
const app = express();
app.use("/", express.static(__dirname + "../../dist/TournamentsPlatform/"));
app.listen(8000, () => console.log("Server started on port 8000"));
То, что я пробовал ранее
app.get("/", function (req, res) {
res.sendFile(path.join(__dirname + "/../dist/TournamentsPlatform/"));
});
app.use("/*", express.static(__dirname + "../../dist/TournamentsPlatform/"));
app.use(express.static(__dirname + "../../dist/TournamentsPlatform/"));
Ошибка - консоль браузера показывает
Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
Mis c Info
- Я использую Ленивую загрузку для всех Angular маршрутов. Каждая страница представляет собой новый модуль
- Страница работает нормально, когда я внутренне маршрутизирую ее. Итак, когда я go до
localhost:8000/
(NodeJS Server) и затем нажимаю на ссылку, которая указывает на внутренний маршрут, он работает нормально. И в то время, URL-адрес браузера localhost:8000/innerPage