これはあなたが必要とすることをするはずです:
https://gist.github.com/873098
説明:App Engine Pythonでは、正規表現をURLハンドラーとして使用しapp.yaml
、すべてのURLを静的ファイルの階層にリダイレクトすることができます。
例app.yaml
:
application: your-app-name-here
version: 1
runtime: python
api_version: 1
handlers:
- url: /(.*\.css)
mime_type: text/css
static_files: static/\1
upload: static/(.*\.css)
- url: /(.*\.html)
mime_type: text/html
static_files: static/\1
upload: static/(.*\.html)
- url: /(.*\.js)
mime_type: text/javascript
static_files: static/\1
upload: static/(.*\.js)
- url: /(.*\.txt)
mime_type: text/plain
static_files: static/\1
upload: static/(.*\.txt)
- url: /(.*\.xml)
mime_type: application/xml
static_files: static/\1
upload: static/(.*\.xml)
# image files
- url: /(.*\.(bmp|gif|ico|jpeg|jpg|png))
static_files: static/\1
upload: static/(.*\.(bmp|gif|ico|jpeg|jpg|png))
# index files
- url: /(.+)/
static_files: static/\1/index.html
upload: static/(.+)/index.html
# redirect to 'url + /index.html' url.
- url: /(.+)
static_files: static/redirector.html
upload: static/redirector.html
# site root
- url: /
static_files: static/index.html
upload: static/index.html
.html
認識されたタイプ( 、.png
など)で終わらないURLへのリクエストを処理するには、または/
それらのリクエストをリダイレクトして、そのディレクトリURL + /
のforが提供されるようにする必要があります。index.html
内でこれを行う方法がわからないapp.yaml
ため、javascriptリダイレクタを追加しました。これは、小さなPythonハンドラーを使用して実行することもできます。
redirector.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<script language="JavaScript">
self.location=self.location + "/";
</script>
</head>
<body>
</body>
</html>