Django_生產環境靜態文件配置
阿新 • • 發佈:2017-09-01
錯誤信息 str ews 關閉 all 靜態 div brush rom
需求:
當Django項目運行在線上的時候,需要關閉debug模式,那麽Django設置中,靜態文件路徑配置將會失效,如何解決這個問題?
問題原因:
Django默認關閉debug模式,Django錯誤信息將不會返回給請求,setting中靜態文件的設置將會自動失效,Django會認為這個是上線的環境
那,如何解決這個問題?
方法1: 把靜態文件按照協議,存放在apache服務器等第三方服務器提供傳輸服務
方法2:Django自己啟動一個服務,來進行靜態文件傳輸
那選擇方法2來進行配置:
setting中:
# 生產環境必須把debug設置為False,必須設置允許訪問的ip DEBUG = False # 生產環境必須設置,允許訪問的主機,*表示所有 ALLOWED_HOSTS = [‘*‘] STATIC_URL = ‘/static/‘ # 配置靜態文件路徑,當debug=False,就失效了,Django默認你為生產環境,將不再提供代理,一般靜態文件都通過第三方代理 STATICFILES_DIRS = ( os.path.join(BASE_DIR, ‘static‘), ) # 生產環境,debug=False, ALLOWED_HOSTS = [‘*‘] STATIC_ROOT = os.path.join(BASE_DIR, ‘static‘)
項目入口urls中
from django.conf.urls import url # 導入server服務 from django.views.static import serve from MxOline.settings import STATIC_ROOT urlpatterns = [ ... # 生產環境,static靜態文件代理 url(r‘^static/(?P<path>.*)$‘, serve, {‘document_root‘: STATIC_ROOT}), ]
Django_生產環境靜態文件配置