[英]Django is not serving static and media files in development but it is serving in production
[英]Why not serving static files with Django in a production environment?
我遇到了settings.py
的以下示例:
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
並被告知:
static()輔助函數適用於開發,但不適合生產使用。 永遠不要在生產環境中使用Django提供靜態文件。
誰能解釋為什么以及如何更好地使用它?
編輯:
我可以在Apache中使用static()嗎?
Django提供靜態文件的速度和效率都不是很快。 引用Django文檔,“這種方法非常低效,可能不安全,因此不適合生產。” 最好使用專門用於提供靜態內容的工具。 有關如何在部署靜態文件的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可以找到它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.