|
application: you-app-name-here |
|
version: 1 |
|
runtime: python |
|
api_version: 1 |
|
|
|
default_expiration: "30d" |
|
|
|
handlers: |
|
- url: /(.*\.(appcache|manifest)) |
|
mime_type: text/cache-manifest |
|
static_files: static/\1 |
|
upload: static/(.*\.(appcache|manifest)) |
|
expiration: "0m" |
|
|
|
- url: /(.*\.atom) |
|
mime_type: application/atom+xml |
|
static_files: static/\1 |
|
upload: static/(.*\.atom) |
|
expiration: "1h" |
|
|
|
- url: /(.*\.crx) |
|
mime_type: application/x-chrome-extension |
|
static_files: static/\1 |
|
upload: static/(.*\.crx) |
|
|
|
- url: /(.*\.css) |
|
mime_type: text/css |
|
static_files: static/\1 |
|
upload: static/(.*\.css) |
|
|
|
- url: /(.*\.eot) |
|
mime_type: application/vnd.ms-fontobject |
|
static_files: static/\1 |
|
upload: static/(.*\.eot) |
|
|
|
- url: /(.*\.htc) |
|
mime_type: text/x-component |
|
static_files: static/\1 |
|
upload: static/(.*\.htc) |
|
|
|
- url: /(.*\.html) |
|
mime_type: text/html |
|
static_files: static/\1 |
|
upload: static/(.*\.html) |
|
expiration: "1h" |
|
|
|
- url: /(.*\.ico) |
|
mime_type: image/x-icon |
|
static_files: static/\1 |
|
upload: static/(.*\.ico) |
|
expiration: "7d" |
|
|
|
- url: /(.*\.js) |
|
mime_type: text/javascript |
|
static_files: static/\1 |
|
upload: static/(.*\.js) |
|
|
|
- url: /(.*\.json) |
|
mime_type: application/json |
|
static_files: static/\1 |
|
upload: static/(.*\.json) |
|
expiration: "1h" |
|
|
|
- url: /(.*\.m4v) |
|
mime_type: video/m4v |
|
static_files: static/\1 |
|
upload: static/(.*\.m4v) |
|
|
|
- url: /(.*\.mp4) |
|
mime_type: video/mp4 |
|
static_files: static/\1 |
|
upload: static/(.*\.mp4) |
|
|
|
- url: /(.*\.(ogg|oga)) |
|
mime_type: audio/ogg |
|
static_files: static/\1 |
|
upload: static/(.*\.(ogg|oga)) |
|
|
|
- url: /(.*\.ogv) |
|
mime_type: video/ogg |
|
static_files: static/\1 |
|
upload: static/(.*\.ogv) |
|
|
|
- url: /(.*\.otf) |
|
mime_type: font/opentype |
|
static_files: static/\1 |
|
upload: static/(.*\.otf) |
|
|
|
- url: /(.*\.rss) |
|
mime_type: application/rss+xml |
|
static_files: static/\1 |
|
upload: static/(.*\.rss) |
|
expiration: "1h" |
|
|
|
- url: /(.*\.safariextz) |
|
mime_type: application/octet-stream |
|
static_files: static/\1 |
|
upload: static/(.*\.safariextz) |
|
|
|
- url: /(.*\.(svg|svgz)) |
|
mime_type: images/svg+xml |
|
static_files: static/\1 |
|
upload: static/(.*\.(svg|svgz)) |
|
|
|
- url: /(.*\.swf) |
|
mime_type: application/x-shockwave-flash |
|
static_files: static/\1 |
|
upload: static/(.*\.swf) |
|
|
|
- url: /(.*\.ttf) |
|
mime_type: font/truetype |
|
static_files: static/\1 |
|
upload: static/(.*\.ttf) |
|
|
|
- url: /(.*\.txt) |
|
mime_type: text/plain |
|
static_files: static/\1 |
|
upload: static/(.*\.txt) |
|
|
|
- url: /(.*\.unity3d) |
|
mime_type: application/vnd.unity |
|
static_files: static/\1 |
|
upload: static/(.*\.unity3d) |
|
|
|
- url: /(.*\.webm) |
|
mime_type: video/webm |
|
static_files: static/\1 |
|
upload: static/(.*\.webm) |
|
|
|
- url: /(.*\.webp) |
|
mime_type: image/webp |
|
static_files: static/\1 |
|
upload: static/(.*\.webp) |
|
|
|
- url: /(.*\.woff) |
|
mime_type: application/x-font-woff |
|
static_files: static/\1 |
|
upload: static/(.*\.woff) |
|
|
|
- url: /(.*\.xml) |
|
mime_type: application/xml |
|
static_files: static/\1 |
|
upload: static/(.*\.xml) |
|
expiration: "1h" |
|
|
|
- url: /(.*\.xpi) |
|
mime_type: application/x-xpinstall |
|
static_files: static/\1 |
|
upload: static/(.*\.xpi) |
|
|
|
# image files |
|
- url: /(.*\.(bmp|gif|ico|jpeg|jpg|png)) |
|
static_files: static/\1 |
|
upload: static/(.*\.(bmp|gif|ico|jpeg|jpg|png)) |
|
|
|
# audio files |
|
- url: /(.*\.(mid|midi|mp3|wav)) |
|
static_files: static/\1 |
|
upload: static/(.*\.(mid|midi|mp3|wav)) |
|
|
|
# windows files |
|
- url: /(.*\.(doc|exe|ppt|rtf|xls)) |
|
static_files: static/\1 |
|
upload: static/(.*\.(doc|exe|ppt|rtf|xls)) |
|
|
|
# compressed files |
|
- url: /(.*\.(bz2|gz|rar|tar|tgz|zip)) |
|
static_files: static/\1 |
|
upload: static/(.*\.(bz2|gz|rar|tar|tgz|zip)) |
|
|
|
# index files |
|
- url: /(.+)/ |
|
static_files: static/\1/index.html |
|
upload: static/(.+)/index.html |
|
expiration: "15m" |
|
|
|
- url: /(.+) |
|
static_files: static/\1/index.html |
|
upload: static/(.+)/index.html |
|
expiration: "15m" |
|
|
|
# site root |
|
- url: / |
|
static_files: static/index.html |
|
upload: static/index.html |
|
expiration: "15m" |
If you put your "/app" handler before the wildcard handlers "/(.+)/" (around line 170), it should work.