Я новичок в этом и планирую переместить мои вещи из платного веб-сервиса в GAE (ничего динамического, только статические страницы). Поверьте мне, я потратил бесчисленные часы, пытаясь сделать эту работу, но нахожусь в тупике, из-за которого я достигаю один результат, исключая другой и наоборот.
Я уверен, что это простой ответ и что я нарушаю некоторые основные принципы. Я хочу, чтобы на странице движка приложения (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) находится ниже и является общим для двух следующих yamls:
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 ()
При использовании следующего yaml целевая страница (mygaeid.appspot.com) работает отлично (с доставкой содержимого apple.html), но я не могу получить доступ к странице, если добавляю суффикс, например, mygaeid.appspot.com/apples.html или mygaeid.appspot.com/static/htmdir/apples.html и т. д., как только я добавляю суффикс, он не работает. В каталоге (htmdir) я поместил apple.html вместе с другими 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
Если я изменю yaml следующим образом, целевая страница (mygaeid.appspot.com) не работает, но когда я добавляю суффиксы, она работает отлично, например. mygaeid.appspot.com/apples.html; mygaeid.appspot.com/oranges.html и т. д. доставьте соответствующие страницы:
- url: /(.*\.(html))
static_files: htmdir/\1
upload: htmdir/(.*\.(html))
Наконец, если я полностью обойдусь без каталогов и использую тот же файл abcdefg.py (без каталога), следующий очень простой 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 и спасибо dave. Я вернулся еще раз и внимательно прочитал логи. Решение Wooble работает, но мне нужно было поместить htmdir (содержащий html) в директорию, называемую static. GAE - отличное (и бесплатное) решение для статических сайтов
Ваша помощь и отзывы очень важны
SiteDirectory
-mygaeid
-static
-htmdir
-js
-css
-images
app.yaml
index.yaml
(py file was removed)