chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

Google App Engineで静的ファイルを扱う

今時、GAEを使う人がどれだけいるのか分からないけど、、まぁ無料だし、サンプル実装等をURL付きで公開するなら個人契約のレンサバより、こういうサイトの方がいいのではと思っています。
で、久しぶりにGAEを使って、単に静的ファイルを置いただけだったのだが、ちょっとだけ、はまったのでメモとして記録
ローカルPCのファイル配置は以下

  \hoge-+--index.yaml
        +--\public_html-+-index.html
                        +-\js--sample.js
                        +-\css--style.cs

上記、”¥名前”はフォルダを表します。public_htmlフォルダの下にindex.htmlと、さらに、js,cssフォルダがあるという構成(これが素直な配置かどうかは不明。。)。静的ファイルを取り扱うには、index.yamlでURL−>リソースを定義します。
ローカル環境で正常動作を確認した後、GAEのサーバにデプロイして動作確認すると、ファイルが見つからないといって怒られた。
正解を先に書くと、上記構成でエラーなしで動作するyamlは以下

application: virtualtourer
version: 1
runtime: python27
api_version: 1
threadsafe: yes

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

- url: /css
  static_dir: public_html/css

- url: /js
  static_dir: public_html/js

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

libraries:
- name: webapp2
  version: "2.5.1"

サーバ側で正常に正常しなかったのは、パス指定をDOSの感覚でバックスラッシュ¥で書いていたため。パスを¥からスラッシュ/に修正すると正常に動作した。ローカル環境では¥で表記しても正常に動いてしまうのであった。。