我看到settings.py
的以下示例:
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
并被告知:
static()辅助函数适合开发但不适合 生产用途。永远不要使用Django来提供静态文件 生产环境。
任何人都可以解释为什么以及如何更好地使用它?
编辑:
我可以在Apache上使用static()吗?
答案 0 :(得分:4)
Django提供静态文件的速度和效率都不是很快。引用Django文档,“这种方法非常低效,可能不安全,因此不适合生产。”最好使用专门用于提供静态内容的工具。有关如何在deploying static files上的Django文档中设置静态服务器的详细说明。
基本思想是不要让Django不必要地提供静态文件。让你的生产服务器,你的评论听起来像是apache,直接提供静态文件。以下是编辑httpd.conf文件以获取apache以提供静态文件https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/modwsgi/#serving-files的说明。 django中的static()函数根本不应该涉及。确保使用django中的collectstatic管理命令将所有静态文件复制到STATIC_ROOT,以便apache可以找到它们。