2017-03-17 4 views
3

app.yaml 내 Python App Engine 웹 애플리케이션 설정에 문제가 있습니다. 어떻게 든 내 응용 프로그램에있는 정적 파일 (javascript, CSS 및 HTML)의 index.html 나머지는 응용 프로그램 엔진에 배포되지 않습니다. 나는 에있는 스크립트에서 static_filesupload 요소의 다양한 조합을 시도했다. 일부는 로컬 dev 앱 서버에서 작동하지만 gcloud app deploy을 통해 앱 엔진에 배포하면 작동하지 않습니다. gcloud에서 생성 된 로그에는 오류가 표시되지 않습니다. 그들은 내 모든 정적 파일에 대해 "[...]의 업로드를 건너 뛰는"과 같은 DEBUG 메시지를 표시합니다. 다음과 같이 응용 프로그램 (그것이 AngularJS와 응용 프로그램의)의app.yaml 정적 파일 업로드를위한 설정

디렉토리 구조는 다음과 같습니다

<APP ROOT> 
├── app.yaml 
├── my_scripts 
│   ├── foo.py 
│   └── ... 
├── index.html 
├── mainapp.py 
└── web 
    ├── assets 
    │   ├── css 
    │   │   ├── bootstrap.min.css 
    │   │   ├── bootstrap-theme.min.css 
    │   │   ├── .... 
    │   │   └── .... 
    │   └── js 
    │    ├── app 
    │    │   ├── app.js 
    │    │   └── .... 
    │    └── lib 
    │     └── ... 
    └── partials 
     ├── login.html 
     └── ... 

다음 내 응용 프로그램에 대한 app.yml 파일입니다.

runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 

- url: /favicon\.ico 
    static_files: favicon.ico 
    upload: favicon\.ico 

- url: /(user|tasks)/.* 
    script: mainapp.app 

- url:/
    static_files: index.html 
    upload: index.html 

- url: /web 
    static_files: web\/[^\n]* 
    upload: web\/[^\n]* 

- url: /web 
    static_dir: web 

이 문제를 해결하는 데 도움이 될만한 참고 자료는 크게 감사하겠습니다.

+0

는 HTTP를 살펴 보자 : // stackoverflow.com/questions/33447890/static-files-are-missing/33448239#33448239 이 문제를 해결하면 배포하는 동안 정적 파일을 건너 뛰는 데 도움이되는지 확인하십시오. BTW - 어디서나 그들을 건너 뛰는 이유가 있습니까? –

답변

1

라우팅 순서가 변경되었습니다. 즉, /web/ 처리기 바로 앞에 와야하므로 GAE 라우팅이 처음에 /web을 찾은 다음 / (맨 아래에서 아래로 순서대로)으로 이동합니다. //web보다 먼저 정의하면 도 /web과 일치하므로 항상 index.html 파일이 표시됩니다.

handlers: 

- url: /favicon\.ico 
    static_files: favicon.ico 
    upload: favicon\.ico 

- url: /(user|tasks)/.* 
    script: mainapp.app 

- url: /web 
    static_dir: web 

- url:/
    static_files: index.html 
    upload: index.html 

또한 당신이 다음 핸들러 구성이 나를 위해 일했다 app.yaml

+0

실제로'/'는'/ web'과 일치하지 않을 것입니다. 여러분은'/.*'또는'. *'를 생각할 것입니까? –

+0

Regex/문자열/web에 대한 일치 객체를 반환해야 함 –

+0

앵커가 자동으로 추가되었는지 여부를 알 수 없음 .. –

1

skip_files 섹션 ^web를 추가하지 않은 희망 :

- url: /(user|tasks)/.* 
    script: mainapp.app 

- url:/
    static_files: index.html 
    upload: index.html 

- url: /web 
    static_files: web/(.*)/(.*)/(.*)/(.*) 
    upload: web/(.*)/(.*)/(.*)/(.*) 

- url: /web 
    static_dir: web 
+0

그래서'/ web/assets/css/bootstrap.min.css'과'/ web/assets/js/app/app.js'가이 설정과 함께 업로드된다고 말씀하시는 겁니까? –

+0

예. 이 코드는 GAE에서 작동합니다. –