2017-01-02 19 views
0

我知道,一旦我在生产服务器上启动并运行了所有东西,nginx或apache就应该是静态资产而不是Flask。为了快速入门,我遇到了Flask的一个问题,并请求了子目录static中的文件。瓶颈:对静态回归子目录的请求500

一种正确/static/test.css回报的要求,但对于/static/test/test.css请求返回500,并抛出这个异常:

Traceback (most recent call last): 
    File "/home/tim/shadowcraft-ui-python/venv/lib/python3.5/site-packages/flask/app.py", line 1991, in wsgi_app 
    response = self.make_response(self.handle_exception(e)) 
    File "/home/tim/shadowcraft-ui-python/venv/lib/python3.5/site-packages/flask/app.py", line 1567, in handle_exception 
    reraise(exc_type, exc_value, tb) 
    File "/home/tim/shadowcraft-ui-python/venv/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise 
    raise value 
    File "/home/tim/shadowcraft-ui-python/venv/lib/python3.5/site-packages/flask/app.py", line 1988, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/home/tim/shadowcraft-ui-python/venv/lib/python3.5/site-packages/flask/app.py", line 1642, in full_dispatch_request 
    response = self.make_response(rv) 
    File "/home/tim/shadowcraft-ui-python/venv/lib/python3.5/site-packages/flask/app.py", line 1731, in make_response 
    raise ValueError('View function did not return a response') 
ValueError: View function did not return a response 

该错误搜索的位返回大多是简单的情况下,有人在请求忘了return处理程序,但在直接请求资产时没有任何用处。如果尝试在模板中使用url_for来从子目录请求文件,它也会执行相同的操作。

+0

就像健康检查一样 - 这个'/ static/test/test.css'文件是否真的存在? – YellowShark

+0

是的,它具有正确的权限。 – timwoj

+2

我想你可能需要分享一些代码。我在Python 3.5.2中创建了一个空白的Flask项目,并创建了一个'static/test/test.css'文件,它工作正常。我的app.py文件的内容实际上是从''''''''''from flask flask/Flask(__ name __)。run()',无非是。 – YellowShark

回答

0

这最终成为我的代码中的错误。我有一个路由处理程序,它将三个部分作为参数,并且由于该处理程序尚未实现,所以它导致Flask抛出上述异常。我最终为Does Flask support regular expressions in its URL routing?实现了该处理程序的解决方案,因为我知道第一部分总是几个不同的值之一,并且static处理程序可以正常运行。