Unity3d - хостинг на Google App Engine - PullRequest
2 голосов
/ 12 сентября 2011

У меня проблема с размещением моего веб-приложения Unity3d на GAE.Когда приложение загружается и веб-плеер начинает запрашивать файл ". Unity3d" , я использую следующий сценарий python для ответа HTTP:

class UnityHandler(webapp.RequestHandler):
  def get (self, q):
    if q is None:
      q = 'WebPlayer.unity3d'

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), 
    ('/(.*unity3d)?', UnityHandler)
    ], debug=True)
  util.run_wsgi_app (application)

Не работаетдовольно хорошо, он находит файл, но веб-плеер Unity выдает ошибку «неправильная длина файла».

Так кто-нибудь может сказать мне, где проблема?Я думаю, что это как-то связано с установкой «Content-type», но я не знаю, как это исправить?

Спасибо,

Самер Сами

1 Ответ

3 голосов
/ 12 сентября 2011

Я собираюсь предположить, во-первых, что вы хотели сделать отступ в 3 строки, начиная с path =.

Во-вторых, я предполагаю, что вы намеревались направить URL "/" в WebPlayer.unity3d. Однако оба ваших регулярных выражения будут соответствовать /, так как все после косой черты необязательно; MainHandler получит запрос, так как он первый.

В-третьих, похоже, что вы пытаетесь обслуживать статические файлы не только с помощью динамического обработчика, но и с помощью шаблонизатора. Зачем? Если вы просто пытаетесь обслуживать статические файлы дословно, используйте статические обработчики .

Предполагается, что вы поместили файлы .unity3d в каталог с именем static:

# render WebPlayer.unity3d on /
- url: /
  static_files: static/WebPlayer.unity3d
  upload: static/WebPlayer.unity3d

# match other .unity3d files
- url: /(.*\.unity3d)
  static_files: static/\1
  upload: static/(.*\.unity3d)

# match *.html and anything else
- url: .*
  script: main.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...