AppEngineアプリケーションを作成しました。今まで、提供できるHTMLファイルはごくわずかです。誰かがアクセスするたびにAppEngineにindex.htmlファイルを提供させるにはどうすればよいですか http://example.appengine.com/ ?
現在、私のapp.yamlファイルは次のようになっています。
application: appname
version: 1
runtime: python
api_version: 1
handlers:
- url: /
static_dir: static_files
これはあなたが必要とすることをするはずです:
https://Gist.github.com/873098
説明:App Engine Pythonでは、正規表現をapp.yaml
のURLハンドラーとして使用し、すべての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 + /
にリダイレクトする必要があります。そのため、そのディレクトリの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>
(app.yaml)を使用して実行できます:
handlers:
- url: /appurl
script: myapp.app
- url: /(.+)
static_files: staticdir/\1
upload: staticdir/(.*)
- url: /
static_files: staticdir/index.html
upload: staticdir/index.html
/
をindex.html
にマップしようとしている場合:
handlers:
- url: /
upload: folderpath/index.html
static_files: folderpath/index.html
url:
はパス上で一致し、正規表現をサポートします。
- url: /images
static_dir: static_files/images
したがって、画像ファイルがstatic_files/images/picture.jpg
に保存されている場合は、次を使用します。
<img src="/images/picture.jpg" />
WEB-INF/web.xmlに次のように入力します:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
Jekyllによって生成されたサイトを機能させる方法についてはapp.yamlを次に示します。
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
static_files: _site/index.html
upload: _site/index.html
- url: /assets
static_dir: _site/assets
# index files
- url: /(.+)/
static_files: _site/\1/index.html
upload: _site/(.+)/index.html
- url: /(.*)
static_files: _site/\1
upload: _site/(.*)
- url: /.*
static_dir: _site