您好,登錄后才能下訂單哦!
配置靜態文件的兩種方式:
1 配置單獨app下的靜態文件,比如某個app下的單獨的圖片。
2 配置整個project下的靜態文件,適用于那些和單獨app關聯不大的文件,比如jquery bootstrap 等等
配置步驟:
首先,我們需要確認在settings.py文件中的INSTALLED_APPS變量中存在 django.contrib.staticfiles
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', )
2.1 如果我們要配置單獨app下的靜態文件的話,執行此步驟。
在settings.py文件中定義 STATIC_URL 變量。
STATIC_URL = '/static/'
2.2 如果我們要配置整個project下的靜態文件的話,執行此步驟。
在settings.py文件中定義 STATICFILES_DIRS 變量
STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), # 首選project靜態文件搜尋路徑 '/var/www/static/', # 第二選project靜態文件搜尋路徑,還可以有第三選,第四選…… )
3.1 如果我們要配置單獨app下的靜態文件的話,執行此步驟。
這時,我們需要在app中建立一個名為static 的文件夾。
3.2 如果我們要配置整個project下的靜態文件的話,執行此步驟。
我們需要在整個project 中建立一個 名為static的文件夾
4 當我們在模板中無論是使用硬鏈接 /static/myexample.jpg 還是使用 static 標簽
<img src="{% static "myexample.jpg" %}" />
都會先訪問app下的static/文件夾下的myexample.jpg 文件,若app下的static文件夾中沒有該文件,則訪問project中的static/文件夾,查看是否有myexample.jpg文件,若有則返回,若沒有則去/var/www/static/中尋找。
但我要解決的問題和這個并不太一樣,我在app下新建了一個static文件夾,在該static文件夾下又建了一個目錄linux2yolov3的目錄,專門存放圖片,本來如果是加載這里面的圖片的話可以用
<img src="{% static "linux2yolov3/myexample.jpg" %}" />
但我需要的是動態顯示圖片,也就是從app中的views文件中傳圖片名稱過來顯示,因此上述方法不可行。
解決的方法是
<img src="{% static 'linux2yolov3/' %}{{result_img}}">
其中{{result_img}}是通過app中view里面設置context傳過來的文件名稱。
補充知識:Django下的templates 和 static靜態文件
如果Django頂層目錄中沒有templates的話,就自己新建一個Directory ,這個文件是存放html文件的
1)如果在views里面用render(request,"")引入的時候引入不了,去setting 里面檢查TEMPLATES下面
'DIRS': [os.path.join(BASE_DIR, 'templates')],路徑配置是否正確
2)靜態文件static:里面存放js文件,setting 里面需要配置
STATIC_URL = '/static/' #別名 STATICFILES_DIRS={ os.path.join(BASE_DIR, "statics") }
以上這篇django配置app中的靜態文件步驟就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。