如何使用 Waitress 和 Django 提供静态文件?

How to serve static files with Waitress and Django?

我有一个基于 Django 构建的小型 Web 应用程序,其中包含 python manage.py collectstatic 收集的一些静态文件。我使用的是轻量级服务器,Waitress

当我 运行 我的服务器使用脚本

from waitress import serve

from <my app>.wsgi import application

if __name__ == '__main__':
    serve(application, host = '0.0.0.0', port='8000')

应用程序最多加载 http:localhost:8000,但我注意到静态文件不存在。从终端,我可以读取

Not Found: /static/<my app>/styles.min.css
WARNING:django.request:Not Found: /static/<my app>/styles.min.css
Not Found: /static/<my app>/buttonhover.css
WARNING:django.request:Not Found: /static/<my app>/buttonhover.css
Not Found: /static/<my app>/script.min.js

除了 Waitress 之外,我还需要其他东西来提供静态文件吗?除了 Waitress 之外,我是否需要像 nginx 运行ning 这样的反向代理?如果是这样,是否有 Python 个反向代理可用?

我找到了使用 White Noise 库的解决方案。

Do I need something in addition to Waitress to serve the static files?

是的。有点。你确实需要一些东西来帮助 Django 找到静态文件,或者将它们上传到像 AWS S3 这样的在线容器。

Do I need a reverse proxy like nginx running alongside Waitress?

没有。 White Noise 是对 Django 项目的一个简单添加,在我看来,它与 Waitress 搭配得很好,因为它们是独立的 Python 个项目。