使用cherrypy,我可以使用以下配置信息提供静态index.html文件:
location = os.path.dirname(os.path.realpath(__file__))
conf = {
'/': {
'tools.staticdir.on': True,
'tools.staticdir.dir': '',
'tools.staticdir.root': location,
'tools.staticdir.index': 'index.html'
}
}
cherrypy.tree.mount(Root(), '/', conf)
cherrypy.engine.start()
cherrypy.engine.block()
但是,这样做看起来我也在Web根目录中公开了所有文件。例如,人们也可以下载server.py(其中包含我的樱桃代码)。
有没有办法解决这个问题?我知道有些人会尝试通过http://www.example.com/index.html访问我的网站,我不希望每次都访问404,因为cherrypy只会允许他们转到http://www.example.com或http://www.example.com/index这对我来说似乎是一个问题。
答案 0 :(得分:1)
紧急的是分离静态内容的代码。例如,创建一个静态的'目录,如图所示。
至于index.html,它是否应该是' /'的别名,您可以创建方法,在'出现时替换它们的名称。' 。通过' _',如下所述:cherrypy: respond to url that includes a dot?
一个例子:
#!/usr/bin/env python
import os.path
import cherrypy
class Root:
@cherrypy.expose
def index(self):
return "bla"
index_shtml = index_html = index_htm = index_php = index
location = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'static')
conf = {
'/': {
'tools.staticdir.on': True,
'tools.staticdir.dir': '',
'tools.staticdir.root': location,
}
}
cherrypy.tree.mount(Root(), '/', conf)
cherrypy.engine.start()
cherrypy.engine.block()