簡體   English   中英

為什么不在生產環境中使用Django提供靜態文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM