4

我们正在开发一个 Backbone.js 应用程序,我们可以通过键入来启动 HTTP 服务器这一事实python -m SimpleHTTPServer非常棒。

我们希望能够将任何 URL(例如localhost:8000/path/to/something)路由到我们的index.html,以便我们可以Backbone.Router使用 HTML5进行测试pushState

实现这一目标最轻松的方法是什么?(出于快速原型制作的目的)

4

2 回答 2

3

只需使用内置的 python 功能BaseHTTPServer

import BaseHTTPServer

class Handler( BaseHTTPServer.BaseHTTPRequestHandler ):
    def do_GET( self ):
        self.send_response(200)
        self.send_header( 'Content-type', 'text/html' )
        self.end_headers()
        self.wfile.write( open('index.html').read() )

httpd = BaseHTTPServer.HTTPServer( ('127.0.0.1', 8000), Handler )
httpd.serve_forever()
于 2012-05-25T13:51:59.773 回答
1
  1. 下载并安装CherryPy

  2. 创建以下 python 脚本(调用它always_index.py或类似的东西)并将 'c:\index.html' 替换为您要使用的实际文件的路径

    import cherrypy
    
    class Root:
        def __init__(self, content):
            self.content = content
    
        def default(self, *args):
            return self.content
        default.exposed = True
    
    cherrypy.quickstart(Root(open('c:\index.html', 'r').read()))
    
  3. python <path\to\always_index.py>
  4. 将您的浏览器指向http://localhost:8080,无论您请求什么 url,您总是会得到相同的内容。
于 2012-05-25T13:43:30.090 回答