以Pycharm為例設定Django專案static資料夾
之前提到過template模板範例教學,
為了調整版面或者調整字型或者顏色等等,
會幫網頁加入CSS檔案,
舉凡css , js , img 等等這些檔案,
通常會找個固定的資料夾存放,
而這個資料夾在Django如何設定,
就是今天的主題了:
以Pycharm為例設定Django專案static資料夾
Table of Contents
首先找到專案的settings.py,
確定
django.contrib,staticfiles
是否在INSTALL_APPS中
INSTALLED_APPS = [
..省略..
'django.contrib.staticfiles',
]
如果專案有使用此套件而且DEBUG=True,
可直接在網址列確認該檔案是否已經在網站,
這在開發上比較方便,
但不適合正式上線使用,
所以正式上線時記得要設定為
DEBUG=False
設定靜態檔案資料夾很簡單,
將底下三個設定加到settings.py中即可
# Static files (CSS, JavaScript, Images)# https://docs.djangoproject.com/en/1.11/howto/static-files/ STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'common_static') STATICFILES_DIRS = [ 'web_pay_v2/static',]
這三者有何不同呢?
STATIC_URL = ‘/static/’
設定對應到靜態檔案資料夾的網址,
Pycharm預設已經帶入此設定,
template引用時候帶入
{% load static %}
STATIC_ROOT
在指令行打上
python manage.py collectstatic
會將專案中的static檔案複製一份集中到此資料夾,
在apache或者nginx部屬專案時候使用
STATICFILES_DIRS
手動方式指定靜態檔案存放的資料夾,
要使用static檔案的時候,
系統會來找尋在此列表中的資料夾
如果要讓Django自動尋找各個app中的static資料夾,
在settings.py中必須有底下元件,
Pycharm預設並無此設定需要手動加入
STATICFILES_FINDERS = (
"django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder")
特別應該注意的是,
當 settings.py 中 DEBUG = False ,
Django 預設是不處理 static 檔案的,
也就是說未經過特殊設定, STATICFILES_DIRS 設定是不運行的 ( django.contrib.staticfiles 不運行),
建議處理方式:
設定正確的 STATIC_ROOT ,
部署時記得使用 collectstatic 指令,
透過設定 apache 方式,
將 STATIC_ROOT 納入 apache 的管理
================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================