iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 24
0
Modern Web

Django案例實作之踩坑全記錄系列 第 24

部署網站with Heroku - 靜態檔案

是時候來了解一下STATIC_ROOT、STATICFILES_DIRS、STATIC_URL三者的不同了,之前都只是依樣畫胡虜的做。

STATIC_ROOT

在部署網站的時候,下完'git push heroku master'指令後,會看到終端機跑出'python manage.py collectstatic',其目的是要將所有靜態檔案蒐集到指定目錄,所以開發者需要在settings.py新增'STATIC_ROOT'項目,例如:

STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
#須為絕對路徑,資料夾名看網上大家用的不一定一樣。

STATICFILES_DIRS

STATICFILES_DIRS代表的是放靜態文件的路徑,而Django就是掃遍STATICFILES_DIRS裡的絕對路徑逐一蒐集到STATIC_ROOT裡的。
mysite專案的static資料夾是獨立於app的,如果有其他app的,我規劃靜態文件也是通通都放這裡,像公共資料夾一樣。當然也可以在各app底下建立專屬的static資料夾,STATICFILES_DIRS因此擴充成下面:

STATICFILES_DIRS = [
    "/mysite/quiz/static",
    "/mysite/sth/static",
]

STATIC_URL

跟要在urls.py加上每個app的urlpattern一樣,靜態檔案也需要一組url,才得以在瀏覽器瀏覽,而STATIC_URL格式如下:

STATIC_URL = '/static/'
#static是資料夾名稱。
#只要在瀏覽器輸入http://158.0.0.1:8000/static/result.css,就可以看得到檔案內容。

小結:STATIC_ROOT只有在部署網站時才會需要用到。


上一篇
部署網站with Heroku - 資料庫問題(續)
下一篇
Django - 網站的參訪次數
系列文
Django案例實作之踩坑全記錄33

尚未有邦友留言

立即登入留言