Статические файлы сценариев для angular 5 перестают работать с прокси-сервером traefik с docker swarm

У меня есть контейнер nginx, который будет обслуживать приложение angular на порту 80 для всех доменов. Когда я запускаю контейнер в Docker Swarm как сервис и привязываю его к порту 80. Приложение работает нормально.

Но я пробовал использовать обратный прокси-сервер traefik, и после этого работает только HTML, а все скрипты не загружаются с ошибкой.

Отказано в выполнении сценария из '', поскольку его тип MIME ("текстовый/обычный") не является исполняемым, и включена строгая проверка типов MIME. Отказано в выполнении сценария из 'http://app.local/runtime.js', поскольку его тип MIME ('text/plain') не является исполняемым, и включена строгая проверка типов MIME. app.local/:1 Отказано в выполнении скрипта из 'http://app.local/polyfills.js', потому что его тип MIME ("текстовый/обычный") не является исполняемым, и включена строгая проверка типа MIME. app.local/:1 Отказано в выполнении скрипта из 'http://app.local/styles.js', потому что его тип MIME ("текстовый/обычный") не является исполняемым, и включена строгая проверка типа MIME. app.local/:1 Отказано в выполнении скрипта из 'http://app.local/vendor.js', потому что его тип MIME ("текстовый/обычный") не является исполняемым, и включена строгая проверка типа MIME. app.local/:1 Отказано в выполнении скрипта из 'http://app.local/main.js', потому что его тип MIME ("текстовый/обычный") не является исполняемым, и включена строгая проверка типа MIME.

Для traefik я выполнил шаги из https://jmkhael.io/traefik-as-a-dynamic-reverse-proxy-for-docker-swarm/

docker network create --driver=overlay traefik-net 


docker service create \
--name traefik \
--constraint 'node.role==manager' \
--publish 80:80 \
--publish 8080:8080 \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--network traefik-net \ traefik \
--docker \
--docker.swarmmode \
--docker.domain=jmkhael.io \
--docker.watch \
--logLevel=DEBUG \
--web 

и для службы приложений

docker service create \
--name web \
--label 'traefik.port=80' \
--label traefik.frontend.rule="app.local; Path: /" \
--network traefik-net \ app

Это правильный путь? Или я пропустил какие-либо другие конфигурации. Спасибо заранее.


person Arul Ranjith    schedule 20.06.2018    source источник
comment
Какой URL-адрес ожидает ваше угловое приложение? следует ожидать app.local. Удалите --docker.domain=jmkhael.io, а также ; Path: / часть правила в веб-сервисе. Посмотрите, помогут ли они.   -  person Bret Fisher    schedule 21.06.2018
comment
Привет. Извините, что домен является образцом. Я дал только app.local   -  person Arul Ranjith    schedule 22.06.2018


Ответы (1)


Приложение начало работать после удаления

Дорожка: /

часть этикетки веб-контейнера.

person Arul Ranjith    schedule 23.06.2018
comment
Это не должен быть принятый ответ, потому что такая же проблема существует с PathPrefixStrip - person Kingz; 17.08.2018