gpt4 book ai didi

python - 如何在 Heroku 中使用 Python webapp2 处理静态文件?

转载 作者:太空狗 更新时间:2023-10-30 00:37:07 25 4
gpt4 key购买 nike

我现在正在将我的小型 Google App Engine 应用程序迁移到 Heroku 平台。我实际上并没有使用 Bigtable,webapp2 大大降低了我的迁移成本。

现在我一直在处理静态文件。

有什么好的做法吗?如果是这样,请带我去那里。

提前致谢。

编辑

好吧,我现在正在为我的 WSGI 服务器使用 pastepaste.StaticURLParser() 应该是我实现静态文件处理程序所需要的。但是我不知道如何将它与 webapp2.WSGIApplication() 集成。谁能帮帮我?

也许我需要覆盖 webapp2.RequestHandler 类来正确加载 paste.StaticURLParser()

import os
import webapp2
from paste import httpserver

class StaticFileHandler(webapp2.RequestHandler):
u"""Static file handler"""

def __init__(self):
# I guess I need to override something here to load
# `paste.StaticURLParser()` properly.
pass

app = webapp2.WSGIApplication([(r'/static', StaticFileHandler)], debug=True)


def main():
port = int(os.environ.get('PORT', 5000))
httpserver.serve(app, host='0.0.0.0', port=port)

if __name__ == '__main__':
main()

如有任何帮助,我们将不胜感激!

最佳答案

下面是我如何让它工作的。

我猜测依赖级联应用程序并不是最有效的选择,但它足以满足我的需求。

from paste.urlparser import StaticURLParser
from paste.cascade import Cascade
from paste import httpserver
import webapp2
import socket


class HelloWorld(webapp2.RequestHandler):
def get(self):
self.response.write('Hello cruel world.')

# Create the main app
web_app = webapp2.WSGIApplication([
('/', HelloWorld),
])

# Create an app to serve static files
# Choose a directory separate from your source (e.g., "static/") so it isn't dl'able
static_app = StaticURLParser("static/")

# Create a cascade that looks for static files first, then tries the webapp
app = Cascade([static_app, web_app])

def main():
httpserver.serve(app, host=socket.gethostname(), port='8080')

if __name__ == '__main__':
main()

关于python - 如何在 Heroku 中使用 Python webapp2 处理静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com