我对使用CherryPy同时托管静态文件和我的REST api感到有点困难。我希望API位于http://127.0.0.1:8080/api
上,以及http://127.0.0.1:8080/
上的所有静态文件。当用户只是GET
/api
网址时,我希望它能够提供静态HTML以及如何使用API的手册。 /
网址上的静态html是HTML5应用; REST API的基本实现。
我现在拥有的是:
cherrypy.config.update({"tools.staticdir.on": True })
cherrypy.config.update({"tools.staticdir.dir": "/home/bart/html" })
#cherrypy.config.update({"tools.staticdir.index": "index.html"})
if __name__ == '__main__':
cherrypy.tree.mount(myApp(), "/api")
cherrypy.engine.start()
cherrypy.engine.block()
它几乎就在那里,除非我GET http://127.0.0.1:8080/api
,它与/
上的相同。 index
类的myApp()
如下:
@cherrypy.expose
def index(self):
# TODO: place API docs here
if cherrypy.request.method == "GET":
return "REST API v{v}".format(v=VERSION)
else:
return result(405)
答案 0 :(得分:0)
我通过为空应用程序创建单独的配置来实现它:
cherrypy.tree.mount(myApp(), "/api")
cherrypy.tree.mount(None, "/", {'/':
{"tools.staticdir.on": True ,
"tools.staticdir.dir": "/home/bart/html" ,
"tools.staticdir.index": "index.html"
} } )
cherrypy.engine.start()
cherrypy.engine.block()