我想从我的Flask应用程序调用send_static_file,它引用一个静态html文件。代码在localhost上工作正常,但是当我用nxingx和gunicorn设置它时出现错误:
404网址未找到错误。
我的烧瓶应用程序路由到:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from .frontend import frontend
application = Flask(__name__, instance_relative_config=True)
application.register_blueprint(frontend, url_prefix='/app')
@application.route('/')
def hello_world():
return "hello world" ------>>>>>THIS WORKS
#return application.send_static_file('frontend/static/dist/index.html') ------>>>>>>>THIS DOES NOT WORK
我的nginx配置如下所示:
server {
listen 80;
server_name 52.34.18.48;
error_log /var/www/appname/nginx_errorlog.log;
access_log /var/www/appname/nginx_accesslog.log;
root /var/www/appname;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
当我只返回一个字符串时,会显示该字符串,但是当我返回一个静态文件内容时,我收到错误。
更新1:
在调试中运行flask返回:
- 在http://127.0.0.1:5000/上运行 (按CTRL + C退出)*使用stat * Debugger重新启动!
- 调试器密码:XXX-XXX-XXX 127.0.0.1 - - [29 / Jan / 2016 04:09:20]“GET / HTTP / 1.0”200 - 127.0.0.1 - - [29 / Jan / 2016 04:09:29]“GET / app HTTP / 1.0”301 - 127.0.0.1 - - [29 / Jan / 2016 04:09:29]“GET / app / HTTP / 1.0”404 -
我在这里做错了什么?
答案 0 :(得分:1)
此功能由Flask内部使用。我不建议以这种方式使用它。
如果您需要提供静态文件,我建议您配置Nginx来为您处理。在网站的某些部分具有非常高性能的情况下,这非常棒!
如果您需要使用Flask,请查看send_from_directory。这可能就是你所需要的。