Проблемы с развертыванием в Google App Engine - PullRequest
0 голосов
/ 13 июня 2018

Я несколько недель пытаюсь развернуть и получить доступ к образцу приложения Angular в Google App Engine, и до сих пор оно всегда было неудачным.

Я действительно сомневаюсь, что это связано с настройкой обработчика моегофайл app.yaml.У меня есть конфигурация bitbucket, с помощью которой я упаковываю все мои файлы (webpack) в папку dist, перемещаюсь в эту папку и только затем выполняю команду gcloud app deploy

Вот мой конвейерный скрипт

image: python:3.5.1


pipelines:

  custom:

   default:

   - step:

       script:
        - curl -sL https://deb.nodesource.com/setup_10.x | bash

        - apt-get install -y nodejs
        - apt-get install -y build-essential
        - npm install -g @angular/cli@latest
        - npm install

          #setting the base href to see if it works when deployed
        - ng build --prod --aot 
        # by default AOT compiler is taken

        - cp app.yaml dist



        - curl -o /tmp/google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-200.0.0-linux-x86_64.tar.gz

        - tar -xvf /tmp/google-cloud-sdk.tar.gz -C /tmp/

        - /tmp/google-cloud-sdk/install.sh -q

        - source /tmp/google-cloud-sdk/path.bash.inc
        - echo $GCLOUD_API_KEYFILE | base64 --decode --ignore-garbage > ./gcloud-api-key.json
        - gcloud config set project $GCLOUD_PROJECT

        - gcloud auth activate-service-account --key-file gcloud-api-key.json

        - echo $GCLOUD_API_KEYFILE > /tmp/client-secret.json
        #setting it before updating the config
        - gcloud config set project $GCLOUD_PROJECT
        - gcloud config set gcloudignore/enabled false
        - gcloud app deploy app.yaml --verbosity=info

Вот мой файл app.yaml

runtime: python27
api_version: 1
env: standard
threadsafe: true

service: sampleapp

handlers:


# Routing for bundles to serve directly
 - url: /((?:inline|main|polyfills|styles|runtime|vendor)\.[a-z0-9]+\.js)
   secure: always
   redirect_http_response_code: 301
   static_files: /\1
   upload:/.*

 # Routing for a prod styles.bundle.css to serve directly
 - url: /(styles\.[a-z0-9]+\.css)
   secure: always
   redirect_http_response_code: 301
   static_files:/\1
   upload:/.*

  # Routing for typedoc, assets and favicon.ico to serve directly
 - url: /((?:assets|docs)/.*|favicon\.ico)
   secure: always
   redirect_http_response_code: 301
   static_files: dist/\1
   upload: dist/.*

  # Any other requests are routed to index.html for angular to handle 
     so we don't need hash URLs
 - url: /.*
   secure: always
   redirect_http_response_code: 301
   static_files:/index.html
   upload:/index.html
   http_headers:
   Strict-Transport-Security: max-age=31536000; 
    includeSubDomains
   X-Frame-Options: DENY

Я полагаю, что при настройке раздела обработчиков может быть ошибка.Поэтому, пожалуйста, дайте мне знать, если мой раздел обработчиков корректен?

РЕДАКТИРОВАТЬ

Когда я развертываю приложение, оно успешно развертывается, и я могу видетьjs-файлы, папка /static и файлы index.html при отладке версии в GAE.

Тем не менее, я всегда получаю сообщение об ошибке 404 НЕ НАЙДЕНО, когда я пытаюсь получить доступ к URL, или ни один из файлов js (bundle.#hashnumber.bundle.js, main.#hashnumber.bundle.js, vendor.#hasnnumber.bundle.js) не загружается.

Я также попытался запустить devserver на локальном компьютере:

dev_appserver.py app.yaml --port 8081 
INFO    2018-06-15 05:28:52,963 devappserver2.py:120] Skipping SDK update check. 
INFO    2018-06-15 05:28:53,214 admin_server.py:152] Starting admin server at: localhost:8000 
INFO    2018-06-15 05:28:53,458 devappserver2.py:215] No default module found. Ignoring. New instance for module "testapp" serving on: localhost:8081 
INFO    2018-06-15 05:28:54,711 module.py:846] testapp: "GET /_ah/start HTTP/1.1" 404 -

Я просмотрел их документацию, но так и не понял, как реализовать обработчик для /_ah/start, чтобы ничего не возвращать

1 Ответ

0 голосов
/ 19 июня 2018

Наконец-то я смог решить эту проблему.Я действительно благодарю @DanCornilescu за всю помощь, которую он предложил.Проблема была с static_dir в моем разделе обработчиков, и он указал на это.Кроме того, я добавил свойство application_readable как true только для того, чтобы приложение могло читать файлы js & css без проблемы 500.Пожалуйста, обратитесь к этой ссылке для получения полной информации

https://groups.google.com/forum/#!topic/angular5-app-engine-deployment/Ze22IJ6eJeg

Я также исправил проблему с глипиконами.В разделе обработчиков добавьте это

- url: /(.+\.(gif|png|jpg|js|css|json|woff2|svg|ttf|eot|woff))$ static_files: \1 upload: .+\.(gif|png|jpg|js|css|json|woff2|svg|ttf|eot|woff)$ application_readable: true

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...