0

如何通过使用 werkzeug 和 pure 编写的 WSGI 应用程序来提供像 css 这样的静态文件

python ..没有使用框架..

这是我的服务器..

    from gevent import pywsgi
from Index import application

import os
application = SharedDataMiddleware(application, {
    '/hello/template/': os.path.join(os.getcwd(), 'template')
})
print 'Serving on https://127.0.0.1:4000'
server = pywsgi.WSGIServer(('0.0.0.0', 4000), application,spawn=10000)

# to start the server asynchronously, call server.start()
# we use blocking serve_forever() here because we have no other jobs
server.serve_forever()

模板是css和图像等静态文件的路径。但这仅服务于应用程序而不是静态文件。gevent中是否有提供静态文件的功能..?我没有发现文档有用。

4

1 回答 1

1

直接从 WSGI 应用程序提供静态文件会浪费资源,包括 CPU 和内存,而且不会扩展。

对于公共静态文件,您应该配置您的前端网络服务器以直接为它们提供服务。

对于私有静态文件,您可以在 WSGI 应用程序中进行访问控制并构建响应头,然后让前端 Web 服务器完成实际发送文件内容的繁重工作。看看 X-Sendfile (Apache) 或 X-Accel-Redirect (Nginx)。

于 2012-12-19T10:05:34.587 回答