2017-01-02 58 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處理程序可以正常運行。