AWS EC2 CodeDeploy не загружает JavaScript из папки Angular dist - PullRequest
0 голосов
/ 07 октября 2019

Я использую экземпляр Bitbucket Pipelines + AWS CodeDeploy + AWS EC2 для запуска моего углового приложения. Конвейер работает хорошо, код создается на лету, а затем для EC2 он загружает только папку dist /. Затем, когда я пытаюсь получить доступ к своей странице, CSS-файлы и JS-файлы не загружаются.

Я пытался использовать другие решения из stackoverflow, но ничего не получалось. EC2 работает на apache2 в Ubuntu 18.04.

Я пытался предоставить разрешения на выполнение для файлов js, но это тоже не работает.

Все файлы находятся в одном каталоге.

/deployment-id/deploment-archive/
-index.html
-runtime.js
-main.js
-polyfills.js
-runtime.js
-styles.css

index.html

<script type="text/javascript" src="runtime26209474bfa8dc87a77c.js"></script>
<script type="text/javascript" src="es2015-polyfillsbda95d5896422d031328.js" nomodule></script>
<script type="text/javascript" src="polyfills8bbb231b43165d65d357.js"></script>
<script type="text/javascript" src="maindcabcbb8258040c4d925.js"></script>

На данный момент он отображает только пустую страницу с, и я получил предупреждение в консоли "загрузка не удалась для источника с www.myawslink.com/main.js "

Когда я пытаюсь получить прямой доступ к файлам, apache говорит:" 404 файла не найдено ", но когда я подключаюсь к ec2 с помощью замазки, я вижу файлы в каталоге развертывания с index.html. Я хочу, чтобы страница правильно отображалась и js-файлы работали.

1 Ответ

0 голосов
/ 07 октября 2019

Хорошо, проблема была с apache2.

Поскольку файлы обслуживаются из / var / www / html /, а в мой appspec.yml я включил только index.html здесь

, поэтомуя изменил с этого

  - source: /index.html
    destination: /var/www/html/

на этот

  - source: /dist
    destination: /var/www/html/

И теперь все работает отлично.

и мой bitbucket-pipe.yml выглядит так

pipelines:
  default:
    - step:
        name: build angular
        image: node:10
        caches:
          - node
        script:
          - npm install
          - npm install -g @angular/cli
          - ng build --prod
        artifacts:
          - dist/**
    - step:
        name: deploy
        image: python:3.5.1
        script:
          - apt-get update # required to install zip
          - apt-get install -y zip # required for packaging up the application
          - pip install boto3==1.3.0 # required for codedeploy_deploy.py
          - zip -r /tmp/artifact.zip dist/* scripts/* appspec.yml package.json # package up the application for deployment
          - python codedeploy_deploy.py # run the deployment script
...