2017-03-17 5 views
3

私はapp.yamlのPython App Engine Webアプリケーションの設定に関する問題に直面しています。何らかの理由で、私がアプリケーションに持っている静的ファイル(javascript、CSS、HTML)の残りのindex.htmlがアプリケーションエンジンにデプロイされていないことを除けば、私はapp.yaml内のスクリプトの下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この問題に対処すると、デプロイ時にスキップされる静的ファイルに役立つかどうかを確認してください。ところで、どこにでも表示されるのをスキップする理由はありますか? –

答えて

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に取り組んでいます。 –