AWS EC2 CodeDeploy不会从Angular dist文件夹加载JavaScript

时间:2019-10-07 19:09:30

标签: javascript angular amazon-web-services amazon-ec2 aws-code-deploy

我正在使用Bitbucket Pipelines + AWS CodeDeploy + AWS EC2实例运行我的角度应用程序。管道运行良好,代码是即时生成的,然后对于EC2,它仅上载dist /文件夹。然后,当我尝试访问我的页面时,不会加载css文件和js文件。

我尝试使用stackoverflow的另一种解决方案,但没有任何效果。 EC2在Ubuntu 18.04上的apache2上运行。

我试图授予执行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 :(得分:0)

好的,问题出在apache2。

因为文件是从/ var / www / html /提供的,而在我的appspec.yml中,我在此处仅包含index.html

所以我改变了

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

对此

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

现在一切正常。

和我的bitbucket-pipeline.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