一尘不染

Flask中的静态文件-robot.txt,sitemap.xml(mod_wsgi)

flask

是否有任何聪明的解决方案将静态文件存储在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

必须有一些更方便的方法:)


阅读 534

收藏
2020-04-05

共2个答案

一尘不染

最好的方法是将static_url_path设置为root url

from flask import Flask

app = Flask(__name__, static_folder='static', static_url_path='')
2020-04-05
一尘不染

你将希望通过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”中,并根据你的环境进行调整。

2020-04-05