最近一直在用django1.6和1.7做專案,感觸比較多,如果大家初次使用django的話難免會對它的靜態檔案配置感到頭疼,網上也是眾說紛紜,所以我把我的解決思路整理一下,希望能對大家有所幫助。
需要說明一下,在django的專案檔案裡有乙個debug = true選項,當這個選項為true時為除錯模式,在這個模式下我們可以通過
root@ubuntu:~/mysite# python manage.py runserver
來執行django自帶伺服器,而當debug=false時,除錯模式關閉,這是一般使用nginx之類的伺服器來執行。在這個時候靜態檔案的載入是交給nginx來設定的。所以我們進行靜態檔案配置主要是為了在runserver模式下進行測試開發。我實驗了兩種方法。
(一)、利用templates來載入。
我們在使用django時,一定會在setting.py檔案中配置乙個template_dirs的路徑,一般是在工程目錄下建立乙個叫templates的資料夾,來儲存我們的模板,第一種方法正是利用這個路徑來載入靜態檔案的url。
1、在setting.py檔案中設定template_dirs,例如
template_dirs = (
'/home/hp/mysite/templates',
)
2、在url.py檔案中
匯入from mysite.settings import template_dirs
並在urlpatterns = patterns中新增如下url,以我為例:
url(r'^images/(?p.*)$','django.views.static.serve', ),
url(r'^css/(?p.*)$','django.views.static.serve', ),
url(r'^js/(?p.*)$','django.views.static.serve', ),
以上設定的路徑在系統中表示為images:
/mysite/templates/css/images,
css:
/mysite/templates/css,
js:/mysite/templates/js
即在templates資料夾下建立css和js兩個資料夾,在css下建立乙個叫images的資料夾。
3、在html檔案中,用如下方法呼叫:
注意一定是/css/,前面的/千萬不能省略,images與這呼叫類似,而在css檔案中,因為css與image的資料夾同目錄,所以直接寫images/*.png之類的即可,這裡不要有前斜槓。
這個方法是可以成功的,但我感覺靜態檔案的布置過於散亂,而且設定了三個目錄,以後在nginx裡配置的時候也會稍微費些筆墨,所以我有諮詢了下學長,找到了第二種方法。
(二)、用static_root設定
1、開啟setting.py檔案,在開頭出一般自動建立時就會有:
import os
base_dir = os.path.dirname(os.path.dirname(__file__))
有了它,我們就可以在setting.py裡新增如下配置:
static_url = '/static/'
static_root = os.path.join(base_dir, "static").replace('\\', '/')
staticfiles_dirs = (
("css",os.path.join(static_root,'css')),
("js",os.path.join(static_root,'js')),
("images",os.path.join(static_root,'images')),
)
2、在html中用如下方法引用
在前(隨便,只要在引用靜態檔案前加即可)加上:
之後引用檔案的格式如下:
注意:這裡css前不要用斜槓,很多時候這裡出錯了。js和images的引用類似。
這樣在runserver中靜態檔案就可以使用了。
另外,還有一點需要注意,很多時候修改了css**並沒有相應的效果,這主要是由於瀏覽器快取造成的,只要清理一下快取即可。
Django1 6中models模型關聯的方法整理
foreignkey是個多對一 many to one 關係。引用下官方文件的例子 from django.db import models class topping models.model pass class pizza models.model toppings models.foreig...
django1 6部署實現hello
環境為ubuntu14 destop。2 在目錄 home cloud downloads 下解壓,命令tar zxvf django1.6.tar.gz。解壓後生成資料夾django1.6,3 cd進入django1.6資料夾,用命令安裝 python setup.py install。4 在目錄...
Django靜態檔案
專案中的css js都是靜態檔案。一般會將靜態檔案放到乙個單獨的目錄中,以方便管理。在html頁面中呼叫時,也需要指定靜態檔案的路徑,django中提供了一種解析的方式配置靜態檔案路徑。靜態檔案可以放在專案根目錄下,也可以放在應用的目錄下,由於有些靜態檔案在專案中是通用的,所以推薦放在專案的根目錄下...