2017-01-02 3 views
0

プロダクションサーバですべてを実行したら、nginxまたはapacheはFlaskの代わりに静的アセットを提供するはずです。しかし、私はFlaskの問題と、サブディレクトリのファイルへのリクエストをstaticに実行しています。Flask:静的リターンのサブディレクトリへのリクエスト500

正しく/static/test.cssリターンの要求が、/static/test/test.cssの要求500を返し、この例外がスローされます。そのエラーに検索のビットは、誰かがリクエストでreturnを忘れてしまった、主に簡単な例を返し

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 

ハンドラが必要ですが、アセットを直接リクエストする場合は何もありません。テンプレート内でurl_forを使用してサブディレクトリからファイルを要求しようとする場合も同じことが行われます。

+0

正気のチェックと同じように、この '/ static/test/test.css'ファイルは実際に存在しますか? – YellowShark

+0

はい、正しい権限を持っています。 – timwoj

+2

私はいくつかのコードを共有する必要があると思います。私はPython 3.5.2で空のFlaskプロジェクトを作成し、 'static/test/test.css'ファイルを作りました。うまくいきました。私のapp.pyファイルの内容は、文字通り 'フラスコ輸入Flask/Flask(__ name __)。run()'であり、それ以上のものはありません。 – YellowShark

答えて

0

これは私のコードではエラーに終わった。私は引数として3つの部分を取るルートハンドラを持っており、そのハンドラはまだ実装されていないので、Flaskは上記の例外をスローします。最初の部分が常にいくつかの異なる値の1つであり、staticハンドラが通常どおり実行できることを知っているので、私はそのハンドラの解決策をDoes Flask support regular expressions in its URL routing?から実装しました。

関連する問題