首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Flask中的静态文件- robot.txt、sitemap.xml (mod_wsgi)

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

Stack Overflow用户
提问于 2010-11-22 03:27:00
回答 10查看 47.2K关注 0票数 97

在Flask的应用程序根目录中存储静态文件有什么聪明的解决方案吗?预计在/中可以找到robots.txt和sitemap.xml,所以我的想法是为它们创建路由:

代码语言:javascript
代码运行次数:0
运行
复制
@app.route('/sitemap.xml', methods=['GET'])
def sitemap():
  response = make_response(open('sitemap.xml').read())
  response.headers["Content-type"] = "text/plain"
  return response

一定有更方便的东西:)

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-06-13 03:22:20

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

代码语言:javascript
代码运行次数:0
运行
复制
from flask import Flask

app = Flask(__name__, static_folder='static', static_url_path='')
票数 79
EN

Stack Overflow用户

发布于 2011-02-10 16:36:28

@vonPetrushev是对的,在生产中,你会希望通过nginx或apache提供静态文件,但对于开发来说,拥有简单的开发环境是很好的,让你的python应用程序提供静态内容,这样你就不必担心更改配置和多个项目。要做到这一点,您需要使用SharedDataMiddleware

代码语言:javascript
代码运行次数:0
运行
复制
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“文件夹中,调整为适合您的环境。

票数 67
EN

Stack Overflow用户

发布于 2013-01-31 20:18:03

这个问题最简洁的答案是这个(相同的) questionanswer

代码语言:javascript
代码运行次数:0
运行
复制
from flask import Flask, request, send_from_directory
app = Flask(__name__, static_folder='static')    

@app.route('/robots.txt')
@app.route('/sitemap.xml')
def static_from_root():
    return send_from_directory(app.static_folder, request.path[1:])

总结一下:

正如David指出的那样,通过正确的配置,ok to serve a few static files through prod

  • looking
  • 不会导致重定向到/ /robots.txt /robots.txt。(在Seans answer中,现在还不清楚将静态文件添加到应用根folder
  • finally,中的achieved.)
  • it's有多不干净所提出的解决方案看起来比添加中间件的方法干净得多:
票数 67
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4239825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档