1. 程式人生 > 程式設計 >Django新增bootstrap框架時無法載入靜態檔案的解決方式

Django新增bootstrap框架時無法載入靜態檔案的解決方式

專案結構如下:

Django新增bootstrap框架時無法載入靜態檔案的解決方式

開始時在setting.py中設定如下;

Django新增bootstrap框架時無法載入靜態檔案的解決方式

html檔案中的寫法如下:

Django新增bootstrap框架時無法載入靜態檔案的解決方式

這樣設定一直無法載入靜態檔案,只需要修改setting.py檔案如下:

Django新增bootstrap框架時無法載入靜態檔案的解決方式

就可以載入到靜態檔案了。

補充知識:Django-專案上線後,靜態檔案配置失效以及404、500頁面的全域性配置

一.專案上線後靜態檔案失效

1.因為專案還沒上線的時候,django會預設從setting.py中這個設定

STATIC_URL = '/static/'

STATICFILES_DIRS = (
  os.path.join(BASE_DIR,'static'),)

使靜態檔案生效

2.當setting.py中設定專案上線環境,程式碼如下

# 專案上線,生產模式設定False
DEBUG = False

ALLOWED_HOSTS = ['*']

# 專案沒上線
# DEBUG = True
#
# ALLOWED_HOSTS = []

3.前端就找不到靜態檔案static檔案夾了。

4.需要像MEDIA檔案一樣重新配置靜態檔案的url:

5.setting.py中加程式碼:

#專案上線後,static路徑需要重新配置
STATIC_ROOT = os.path.join(BASE_DIR,'static')

6.專案下的總urls.py(不是app的urls.py)中:

#專案上線後,需要自己配置static靜態檔案路徑

url(r'^static/(?P<path>.*)$',serve,{'document_root':STATIC_ROOT}),

7.這樣靜態檔案就能訪問到了

二、404、500頁面的全域性配置

1.因為這個配置需要專案改成生產環境(及上的debug=False,生產環境配置需設定好才有效)

2.專案下的總urls.py(不是app的urls.py)中,urlpatterns下面新增:

from XMJonline.settings import MEDIA_ROOT,STATIC_ROOT

urlpatterns = [
    ...
]

# 全域性404,500配置
handler404 = 'users.views.page_not_found'
handler500 = 'users.views.page_error'

3.對應的user.views中:

def page_not_found(request):
  '''
  全域性處理404頁面

  '''
  from django.shortcuts import render_to_response
  response = render_to_response('404.html',{})
  response.status_code = 404
  return response


def page_error(request):
  '''
  全域性處理500頁面

  '''
  from django.shortcuts import render_to_response
  response = render_to_response('500.html',{})
  response.status_code = 500
  return response

4.專案的templates資料夾新增自己想要的404/500.html頁面。

5.測試500的問題。

class IndexView(View):
  '''
  首頁
  '''
  def get(self,request):
    # 取輪播圖
    print(1/0)

6.訪問首頁。

7.成功跳轉到自己配置的500頁面。

以上這篇Django新增bootstrap框架時無法載入靜態檔案的解決方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。