0

Flask jQueryの例を正常に実行できます( Flask の「AJAX with jQuery」ページの下部近くで参照されているように)。それはフラスコ開発サーバーで実行され、http://localhost:5000.

で同じアプリにアクセスできるようにページをプロキシするにはどうすればよいhttp://localhost/jqueryexampleですか?

これを Apache VirtualHost エントリに追加すると、うまくいくと思います。

ProxyPass /jqueryexample http://localhost:5000/
ProxyPassReverse /jqueryexample http://localhost:5000/

しかし、新しい URL では 404 エラーが発生します。

GET http://localhost/_add_numbers?a=6&b=2 404 (Not Found)

「canonical URL」の下でサンプルを正しく実行するにはどうすればよいですか (それが正しい用語かどうかはわかりません)。または、この jQuery の例を両方の URL で実行するために、アプリまたは Apache の構成を変更する方法を教えてください。


ところで、問題のバニラFlask jQuery の例をダウンロードして実行する方法は次のとおりです。

git clone http://github.com/mitsuhiko/flask 
cd flask/examples/jqueryexample/ 
python jqueryexample.py
4

2 に答える 2

1

さて、これをさらに調べた後、私は自分の質問に答えたと思います:

どうやら、flask 開発サーバーを実行して Apache httpd 経由でプロキシしようとする代わりに、mod_wsgi を使用してアプリを直接 Apache にデプロイするのが最善の方法です。これを行う方法に関するガイドラインは、ここに詳しく文書化されています。実際、本番環境では、開発サーバーはまったく推奨されません (こちらを参照してください)。

jQuery Flask サンプル自体のデプロイに関しては、次のようにします (DocumentRoot が であると仮定します/var/www/html)。

# Get the example code.
git clone http://github.com/mitsuhiko/flask 
cd flask/examples/jqueryexample/

# Create WSGI file.
echo "\
import sys\
sys.path.insert(0, '/var/www/html/jqueryexample')\
from jqueryexample import app as application\
" > jqueryexample.wsgi

# Deploy to httpd.
sudo mkdir /var/www/html/jqueryexample
sudo cp -r * /var/www/html/jqueryexample/

これを VirtualHost に追加します。

WSGIScriptAlias /jqueryexample /var/www/html/jqueryexample/jqueryexample.wsgi
<Location /var/www/html/jqueryexample>
    Allow from all
    Order allow,deny
</Location>

次に、httpd を再起動します。で実行中のアプリをチェックしてくださいhttp://localhost/jqueryexample。出来上がり!

于 2013-07-10T19:22:07.637 に答える