Django提供靜態文件服務

Django爲了方便開發調試,debug模式下runserver會利用django.contrib.staticfiles應用自動部署資源服務,但是生產模式下(或Debug=True時),如果還想要Django提供資源服務,就必須明確提供資源相關的配置,使其承擔資源服務。
以下是兩種使用Django提供資源服務的配置方式,推薦使用第一種,發佈生產環境後,可以使用nginx提供靜態資源服務,Django只做動態內容服務。

第一種形式:
1、項目設置中配置(settings.py)

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

2、在全局url中配置(urls.py)

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

3、執行資源蒐集命令

python manage.py collectstatic

4、模板中使用

<link rel="stylesheet" type="text/css" href="{% static 'mysite/style.css' %}" />

5、項目結構圖
Django提供靜態文件服務

第二種形式:
1、在應用url中配置(urls.py)

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

2、模板中使用

<link rel="stylesheet" type="text/css" href="{% url 'mysite:static' 'mysite/style.css' %}" />

3、項目結構圖
Django提供靜態文件服務

參考:https://docs.djangoproject.com/zh-hans/2.0/ref/contrib/staticfiles/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章