1. 程式人生 > >Django_生產環境靜態文件配置

Django_生產環境靜態文件配置

錯誤信息 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_生產環境靜態文件配置