0

我可以成功运行Flask jQuery 示例(在Flask 的“带有 jQ​​uery 的 AJAX”页面底部附近提到。)它在 Flask 开发服务器上运行,并且可以在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)

如何让示例在“规范 URL”下正确运行(不确定这是否是正确的术语)?或者,如何更改应用程序或 Apache 配置以使这个 jQuery 示例对两个 URL 都运行?


顺便说一句,这是您下载和运行有问题的香草Flask jQuery 示例的方式:

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

2 回答 2

1

好的,在进一步研究之后,我想我回答了我自己的问题:

显然,与其运行烧瓶开发服务器并尝试通过 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 回答
0

我面前没有 Apache 安装,但是如果您正在代理应用程序,您不应该将 index.html 的第 6 行从

$.getJSON($SCRIPT_ROOT + '/_add_numbers', {

$.getJSON($SCRIPT_ROOT + '/jqueryexample/_add_numbers', {
于 2013-07-02T22:10:36.047 回答