python – 在CherryPy 3.1中提供静态文件的问题
作者:互联网
我在提供静态XML样式表时遇到一些麻烦,以配合来自CherryPy Web应用程序的一些动态生成的输出.甚至我的服务静态文本文件的测试用例都失败了.
静态文件blah.txt位于我的应用程序根目录的/ static目录中.
在我的主站点文件中(conesearch.py包含CherryPy ConeSearch页面处理程序类):
import conesearch
cherrypy.config.update('site.config')
cherrypy.tree.mount(conesearch.ConeSearch(), "/ucac3", 'ucac3.config')
...
在site.config中我有以下选项:
[/]
tools.staticdir.root: conesearch.current_dir
[/static]
tools.staticdir.on: True
tools.staticdir.dir: 'static'
conesearch.py中的current_dir = os.path.dirname(os.path.abspath(__ file__))
但是,我的简单测试页面(直接从http://www.cherrypy.org/wiki/StaticContent开始)失败了404:
def test(self):
return """
<html>
<head>
<title>CherryPy static tutorial</title>
</head>
<body>
<a href="/static/blah.txt">Link</a>
</body>
</html>"""
test.exposed = True
它试图访问127.0.0.1:8080/static/blah.txt,据我估算应该是AOK.有什么想法或建议吗?
干杯,
西蒙
解决方法:
cherrypy.config.update应该只接收单级字典(主要是服务器.*条目),但是你传递的是一个多层次的设置字典,它应该是每个应用程序(因此传递给tree.mount) .
将那些[/]和[/ static]部分从您的site.config文件移动到您的ucac3.config文件,它应该可以正常工作.
标签:python,cherrypy 来源: https://codeday.me/bug/20190726/1546554.html