Tom*_*Tom 3 media django static
这可能是一个愚蠢的问题,但在文档中它说:
\n\n\n\n\n提供用户在开发过程中上传的文件。\xc2\xb6
\n\n在开发过程中,您可以使用视图从 MEDIA_ROOT 提供用户上传的媒体文件
\n\ndjango.contrib.staticfiles.views.serve()。这不适合生产使用!有关一些常见的部署策略,请参阅部署静态文件。
\n\n例如,如果您的 MEDIA_URL 定义为 /media/,您可以通过将以下代码段添加到您的 urls.py 来执行此操作:
\n\nRun Code Online (Sandbox Code Playgroud)\nfrom django.conf import settings \nfrom django.conf.urls.static import static\n\nurlpatterns = [\n # ... the rest of your URLconf goes here ... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)\n
这是否意味着生产用途+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)不应使用或应该使用?
我的理解是你不应该使用django.contrib.staticfiles.views.serve(),但我不确定这是否不一样
django.contrib.staticfiles.views.serve()不应该用于部署。
首先,views.serve()在任何地方调用仅在 if 时有效,并且当使用时DEBUG = True会引发if ,就像部署应用程序时的情况一样。然而,在开发中使用它的好处是,您不必运行/收集静态文件:您可以从静态或媒体根中提取它们,而无需四处移动。Http404DEBUG = Falsecollectstatic
它也有点不安全:views.serve()将猜测使用该模块提供的文件的内容类型mimetype,这将依赖于您正在开发的平台的映射文件:由于 mimetype 模块,生产中的行为可能不同在您的特定环境中。
文档有更多关于django.contrib.staticfiles.views.serve().
现在,当涉及到生产时,Django 的 WSGI 无法很好地为您提供静态/媒体文件服务。Django 是为提供应用程序内容而编写的,在提供静态/用户上传的内容时表现不佳。如果您期望中等负载,那么将Apache或Nginx等单独的服务器与uWSGI等 Web 服务器结合使用更具可持续性,并且可以处理更多负载。本文档详细介绍了如何设置/解释了更多内容。
| 归档时间: |
|
| 查看次数: |
2355 次 |
| 最近记录: |