是否有任何聪明的解决方案将静态文件存储在Flask的应用程序根目录中。robots.txt和sitemap.xml有望在/中找到,所以我的想法是为它们创建路由:
@app.route('/sitemap.xml', methods=['GET']) def sitemap(): response = make_response(open('sitemap.xml').read()) response.headers["Content-type"] = "text/plain" return response
必须有一些更方便的方法:)
最好的方法是将static_url_path设置为root url
from flask import Flask app = Flask(__name__, static_folder='static', static_url_path='')
你将希望通过nginx或apache提供静态文件,但是对于开发人员来说,最好让开发环境简单,让python应用程序也提供静态内容,因此你不必担心有关更改配置和多个项目的信息。为此,你需要使用SharedDataMiddleware。
from flask import Flask app = Flask(__name__) ''' Your app setup and code ''' if app.config['DEBUG']: from werkzeug import SharedDataMiddleware import os app.wsgi_app = SharedDataMiddleware(app.wsgi_app, { '/': os.path.join(os.path.dirname(__file__), 'static') })
本示例假定你的静态文件位于文件夹“ static”中,并根据你的环境进行调整。