1. 程式人生 > >django使用靜態檔案

django使用靜態檔案

網站中經常需要使用靜態檔案諸如圖片、js、css等。

基本使用方法

  1. 確認setting.py中的INSTALLED_APPS 包含了django.contrib.staticfiles這個應用
INSTALLED_APPS = [
    'book',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles'
, ]

STATIC_URL = '/static/'
  1. 在你自己的應用目錄中(如本例的book應用) 建立目錄並拷貝如一個圖片: static/book/a.jpg
    整個工程的目錄是
    projectdir/book/static/book/a.jpg

  2. 在模板中使用此圖片
<html>
<head>
<meta charset='utf-8' />
</head>

<body>
    {% load staticfiles %}
    <img src='{% static "book/a.jpg" %}' />
</body> </html>

變通一

上述例子中, 將a.jpg 放入了projectdir/book/static/book/a.jpg下面。其實也可以放在
projectdir/book/static/a.jpg這個位置。 但為什麼不這麼放呢?因為如果有多個應用,另一個應用也是放在了這個位置projectdir/otherapp/static/a.jpg ,那麼這個a.jpg就重複了。 有可能多個應用使用的是一個a.jpg。 加一層app的目錄,可以避免重複。

變通二 :公共資源

app可以穿件一個公共的目錄
1. 在project根目錄建立一個目錄cstatic : projectdir/cstatic
2. 在setting.py中加入
STATICFILES_DIRS = [
os.path.join(BASE_DIR, “cstatic”)
]
3. 在cstatic中放入一張圖片b.jpg
4. 使用

http://localhost:8000/static/b.jpg就可以訪問了。