Flask-Admin页面在生产中无法访问

时间:2014-10-27 10:03:52

标签: apache flask wsgi flask-admin

我正在尝试使用Apache和mod_wsgi在Ubuntu服务器上部署我的Flask应用程序。

它似乎适用于我已实现的其他请求,但我无法访问我的Flask-Admin页面(我可以在开发中访问)。

这是我的应用程序的结构(为了这个问题而简化):

- MyApp/
    - main.py
    - myapp/
        - __init__.py
        - Views.py
        - files/
    - wsgi/
        myapp.wsgi

在开发中,我只是使用python main.py运行,一切正常。

这是wsgi文件:

import sys
import os

##Virtualenv Settings
activate_this = '/var/www/code/MyApp/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

##Replace the standard out
sys.stdout = sys.stderr

##Add this file path to sys.path in order to import settings
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), '../..'))

##Add this file path to sys.path in order to import app
sys.path.append('/var/www/code/MyApp/')

from myapp import app as application

以下是Apache的配置文件,我正在使用Apache 2.2:

<VirtualHost *:443>
        WSGIScriptAlias /myapp /var/www/code/MyApp/wsgi/myapp.wsgi
        WSGIScriptReloading On
        WSGIPassAuthorization On

        SSLEngine on
        SSLCertificateFile /var/www/code/MyApp/ssl.crt
        SSLCertificateKeyFile /var/www/code/MyApp/ssl.key
        SSLVerifyClient None
        SSLOptions +StdEnvVars

        <Directory /var/www/code/MyApp/wsgi>
                Order deny,allow
                Allow from all
        </Directory>

</VirtualHost>

以下是我在__ init __.py中实例化Flask应用的方法:

app = Flask(__name__, static_folder='files')

以下是我在main.py中创建Admin界面的方法:

# Create admin
admin = admin.Admin(app, 'App Administration')

我的Views.py中还有一个指向管理页面的链接:

@app.route('/')
def index():
    return '<a href="/admin/">Go to admin page</a>'

在开发中,我可以访问mysite.com/admin/上的管理界面。

在制作中,我的应用程序位于mysite.com/myapp/,我无法访问管理界面,我希望在mysite.com/myapp/admin/。

我认为我实例化flask-admin的方式存在问题。我保留了默认的“admin /”网址,但也许我需要在制作时声明一个特定的网址?

感谢您的帮助。

编辑:

我检查了Apache错误日志,但我没有收到任何错误。

1 个答案:

答案 0 :(得分:0)

您是否尝试使用“myapp”更新路线?您似乎需要更新生产路线。甚至可以放弃'/'生产。试试吧。

@app.route('/')
@app.route('/myapp/')
def index():