3

我用 HTML5 写了一个游戏。在本地,它只有在我运行时才有效:

python -m SimpleHTTPServer

然后我打开localhost:8000. 所以,只有一堆 .html 和 .js 文件是行不通的。我想把我的游戏放到网上,因为这个 Github (Pages) 是不可能的,因为它不起作用。

这是我需要服务器的代码部分(我确实意识到这localhost:8000/res/在 App Engine 上不起作用,我需要更改地址):

var mapFile = new XMLHttpRequest();
var self = this;
mapFile.open("GET", "http://localhost:8000/res/map" + mapNumber.toString() + ".txt", true);

mapFile.onreadystatechange = function() {
  if (mapFile.readyState === 4) {
    if (mapFile.status === 200) {
      self.lines = mapFile.responseText.split("\n");
      self.loadTilesFromLines();
    }
  }
};

mapFile.send(null);

所以,我听说 Google App Engine 可以工作,它支持 Python 并且很受欢迎。现在,我不需要他们文档中的任何东西(写得很好):

import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hello, webapp2 World!')

app = webapp2.WSGIApplication([('/', MainPage)],
                              debug=True)

我所需要的只是一个 SimpleHTTPServer,它允许我打开我index.htmlmy-app.appspot.com.

我确实尝试了该示例并启动并运行它,但我无法强制我的浏览器打开index.htmlsrc/什至res/.

所以,我什至不确定 Google App Engine 是否支持我在这里想要实现的目标。文档只专注于构建使用 Python 的应用程序,而我在 Python 中需要的只是一个 SimpleHTTPServer,我认为 App Engine 不需要它。

4

1 回答 1

3

是的,这对于您要在这里实现的目标是非常可行的。由于您只想提供静态文件,因此非常简单,您不需要包含任何 Python 代码。

假设您具有以下结构:

└── my-game
    ├── app.yaml
    └── static
        ├── index.html
        ├── js
        │   └── script.js
        └── res
            └── map.txt

app.yaml应该是这样的:

application: my-app
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:

- url: /
  static_files: static/index.html
  upload: static/index.html

- url: /
  static_dir: static/

After you're going to install the Google App Engine SDK (if you didn't do that already), you will be able to run the dev_appserver.py command from your terminal. If you have the above structure try to run it using the following:

$ dev_appserver.py /path/to/my-game

If everything went smoothly you'll be able to see your index.html on http://localhost:8080, the map.txt on http://localhost:8080/res/map.txt and you should be able to figure out the rest.

Note that you could still run your application using the python -m SimpleHTTPServer from within the static directory and test it on localhost:8000.

于 2013-02-04T09:52:43.753 回答