私はこれで初めてで、有料のWebサービスからGAE(静的なページは動的ではありません)への移行を計画しています。私はこの仕事をしようと無数の時間を費やしてきましたが、私は別のものを排除して1つの結果を達成し、その逆は逆であると私は信じています。Google App Engineの静的ページPython 2.5ディレクトリなど
私はそれが簡単な答えであり、私はいくつかの基本原則に違反していると確信しています。私が望むのは、アプリエンジンのページ(mygaeid.appspot.com)は静的なランディングページを提供し、他のページに接尾辞を追加して利用できることです。 mygaeid.appspot.com/oranges.html mygaeid.appspot.com/grapes.htmlなど
これを達成できないため、接尾辞を追加すると他のページを取得できません。 mygaeid.appspot.com/apples.html; mygaeid.appspot.com/oranges.htmlただし着陸ページではなく、やや異なるyamlでリンク先ページ(mygaeid.appspot.com)は動作しますが、他のページへのアクセスはありません(mygaeid.appspot.com/oranges.html)。等)に接尾辞が付いています。
PYファイル(abcdefg.py)は、以下で、続く2つの異なるyamlsに共通する:
次YAMLにランディングページ(mygaeid.appspot.com)作品を使用してimport os
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext.webapp import template
class MainHandler(webapp.RequestHandler):
def get (self, q):
if q is None:
q = 'htmdir/apples.html'
path = os.path.join (os.path.dirname (__file__), q)
self.response.headers ['Content-Type'] = 'text/html'
self.response.out.write (template.render (path, {}))
def main():
application = webapp.WSGIApplication ([('/(.*html)?', MainHandler)], debug=True)
util.run_wsgi_app (application)
if __name__ == '__main__':
main()
完全に(apples.htmlの内容を提供しています)、私は接尾辞を追加するとページにアクセスできません。 mygaeid.appspot.com/apples.htmlまたはmygaeid.appspot.com/static/htmdir/apples.htmlなど、私はそれが機能しない接尾辞を追加するとすぐに。ディレクトリ(htmdir)に、他のhtmlページと共にapples.htmlを配置しました。 oranges.htmlなど、私はこのyamlでそれらのどれにもアクセスできません。
application: mygaeid
version: 1
runtime: python
api_version: 1
handlers:
- url: /(.*\.(html))
static_files: static/htmdir/\1
upload: static/htmdir/(.*\.(html))
- url: /css
static_dir: css
- url: /js
static_dir: js
- url: /images
static_dir: images
- url: .*
script: abcdefg.py
その後、ランディングページ(mygaeid.appspot.com)が動作しない、次のように私はYAMLを変更するが、私はサフィックスを追加するとき、それは、例えば、完全に動作している場合mygaeid.appspot.com/apples.html; mygaeid.appspot.com/oranges.htmlなどは、適切なページを配信:私は完全にディレクトリを省略し、(ディレクトリなし)同じabcdefg.pyを使用している場合
- url: /(.*\.(html))
static_files: htmdir/\1
upload: htmdir/(.*\.(html))
は最後に次のように非常にシンプルなYAMLは実際に提供します私が望む結果ですが、すべてのファイルがルートディレクトリに詰め込まれているので、非常に扱いにくいです。
application: mygaeid
version: 1
runtime: python
api_version: 1
handlers:
- url: /(.*\.(png|js|css))
static_files: \1
upload: (.*\.(png|js|css))
- url: .*
script: abcedfg.py
これを理解する上で、何か助けていただければ幸いです。
感謝woobleと感謝デイブ おかげで、私はまだ、再び戻って、慎重にWoobleのソリューションが動作ログを読み取るが、私は、静的なというディレクトリ内htmdir(つまり、HTMLが含まれている)を配置する必要がありました。 GAEは
あなたの助けとフィードバックは非常にあなたがapp.yamlを静的としてファイルを宣言した場合、彼らはあなたのアプリケーションのハンドラには使用できません
SiteDirectory
-mygaeid
-static
-htmdir
-js
-css
-images
app.yaml
index.yaml
(py file was removed)
@Octavio:CSS/JS /イメージハンドラを含めるように答えを編集しました。 – geoffspear