Я часами работал над выяснением того, как развернуть проект Angular 6 на сервере NodeJS Express,
Во-первых, в разработке я использую ng serve
, который ссылается на localhost:4200
(по умолчанию), а другой - Node Express для API (взаимодействует с БД) на localhost:3000
. В производственном процессе я хочу, чтобы сборка Angular обслуживалась и с этого сервера Node Express.
Итак, что я сделал:
- Настройка
<base href="/">
на index.html
на Angular Project
- Выполнить
ng build --prod
все прошло гладко, ошибок нет.
- Скопируйте все файлы из
dist/myprojectname
в Angular в каталог сервера Node Express в views/
.
- В
index.js
я добавляю следующие строки app.use(express.static(path.join(__dirname, '/views/')));
получено сообщение об ошибке, подобное этому
Refused to apply style from 'http://localhost:3001/styles.a64e6aa0f6090e05d2190.css/' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
3localhost/:16 GET http://localhost:3001/runtime.16a329deb1d564eef6599.js/ net::ERR_ABORTED 404 (Not Found)
Если я использую app.use('/*', express.static(path.join(__dirname, '/views/')));
выдаст следующую ошибку:
Uncaught SyntaxError: Unexpected token <