Django 靜態(tài)文件

靜態(tài)文件是指網(wǎng)站中的js祝懂,css聪铺,圖片昌执,視頻等文件

開(kāi)發(fā)階段

推薦用新版本的Django進(jìn)行開(kāi)發(fā)尼荆,可以肯定的是
Django1.4以后的版本應(yīng)該都支持下面的設(shè)置

注意:Django1.4版本需要在project/urls/py底部加上:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
 
urlpatterns += staticfiles_urlpatterns()

Django1.4靜態(tài)文件相關(guān)文檔
settings.py靜態(tài)文件相關(guān)示例代碼說(shuō)明:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/
 
STATIC_URL = '/static/'
 
# 當(dāng)運(yùn)行 python manage.py collectstatic 的時(shí)候
# STATIC_ROOT 文件夾 是用來(lái)將所有STATICFILES_DIRS中所有文件夾中的文件藏澳,以及各app中static中的文件都復(fù)制過(guò)來(lái)
# 把這些文件放到一起是為了用apache等部署的時(shí)候更方便
STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
 
# 其它 存放靜態(tài)文件的文件夾,可以用來(lái)存放項(xiàng)目中公用的靜態(tài)文件耀找,里面不能包含 STATIC_ROOT
# 如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "common_static"),
    '/path/to/others/static/',  # 用不到的時(shí)候可以不寫(xiě)這一行
)
 
# 這個(gè)是默認(rèn)設(shè)置业崖,Django 默認(rèn)會(huì)在 STATICFILES_DIRS中的文件夾 和 各app下的static文件夾中找文件
# 注意有先后順序野芒,找到了就不再繼續(xù)找了
STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder"
)

靜態(tài)文件放在對(duì)應(yīng)的app下的static文件夾中,或者STATICFILES_SIRS 中的文件夾中

當(dāng)DEBUG = True時(shí)双炕,Django就能自動(dòng)找到放在里面的靜態(tài)文件狞悲。
(Django通過(guò)STATICFILES_FIDERS中的‘查找器’,找到符合的就停下來(lái)妇斤,尋找的過(guò)程類(lèi)似于Python中使用import xxx時(shí)摇锋,找xxx這個(gè)包的過(guò)程)丹拯。
示例項(xiàng)目dj18static,應(yīng)用app下面有一個(gè)static里面有一個(gè)pic.png

dj18static
├── blog
│   ├── __init__.py
│   ├── admin.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── static # 應(yīng)用 blog 下的 static, 默認(rèn)會(huì)找這個(gè)文件夾
│   │   └── 【pic.png】
│   ├── tests.py
│   │
│   └── views.py
├── common_static # 已經(jīng)添加到了 STATICFILES_DIRS 的文件夾
│   └── js
│       └── 【jquery.js】
│
├── dj18static
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

當(dāng)settings.py中的DEBUG = True 時(shí)荸恕,打開(kāi)開(kāi)發(fā)服務(wù)器Python manage.py runserver 直接訪問(wèn)/static/pic.png就可以找到這個(gè)靜態(tài)文件乖酬。

也可以在settings.py中指定所有app公用的靜態(tài)文件,比如jquery.js等

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "common_static"),
)

把jQuery.js放在common_static/js/下融求,這樣就可以咬像,在/static/js/jquery.js中訪問(wèn)到它

其他參考方法(當(dāng)你相位靜態(tài)文件分配多個(gè)不同網(wǎng)址時(shí),可能會(huì)用上這個(gè)):

當(dāng)然也可以自己指定靜態(tài)文件夾生宛,在urls.py的最后邊這樣寫(xiě):

# static files
import os
from django.conf.urls.static import static
from django.conf import settings
if settings.DEBUG:
    media_root = os.path.join(settings.BASE_DIR,'media2')
    urlpatterns += static('/media2/', document_root=media_root)

也可以這樣:

from django.conf.urls.static import static
 
urlpatterns = ...
 
urlpatterns += static('/media2/', document_root=media_root)
部署時(shí):

1县昂、手機(jī)靜態(tài)文件

Python manage.py collectstatic
# 這一句話(huà)就會(huì)把以前放在app下static中的靜態(tài)文件全部拷貝settings.py中設(shè)置的STATIC_ROOT文件中

nginx 示例代碼:

location /media  {
    alias /path/to/project/media;
}
 
location /static {
    alias /path/to/project/collected_static;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市陷舅,隨后出現(xiàn)的幾起案子倒彰,更是在濱河造成了極大的恐慌,老刑警劉巖莱睁,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件待讳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡缩赛,警方通過(guò)查閱死者的電腦和手機(jī)耙箍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)酥馍,“玉大人辩昆,你說(shuō)我怎么就攤上這事≈继唬” “怎么了汁针?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)砚尽。 經(jīng)常有香客問(wèn)我施无,道長(zhǎng),這世上最難降的妖魔是什么必孤? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任猾骡,我火速辦了婚禮,結(jié)果婚禮上敷搪,老公的妹妹穿的比我還像新娘兴想。我一直安慰自己,他們只是感情好赡勘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布嫂便。 她就那樣靜靜地躺著,像睡著了一般闸与。 火紅的嫁衣襯著肌膚如雪毙替。 梳的紋絲不亂的頭發(fā)上岸售,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音厂画,去河邊找鬼凸丸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛木羹,可吹牛的內(nèi)容都是我干的甲雅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼坑填,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抛人!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起脐瑰,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤妖枚,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后苍在,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體绝页,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年寂恬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了续誉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡初肉,死狀恐怖酷鸦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牙咏,我是刑警寧澤臼隔,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站妄壶,受9級(jí)特大地震影響摔握,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丁寄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一氨淌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伊磺,春花似錦宁舰、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)腋腮。三九已至雀彼,卻和暖如春壤蚜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背徊哑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工袜刷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人莺丑。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓著蟹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親梢莽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子萧豆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 上文雖然能夠顯示模板頁(yè)面,但是在現(xiàn)在這個(gè)js橫飛的時(shí)代不能僅僅用html靜態(tài)頁(yè)就搞定了啊昏名,靜態(tài)文件如js/css/...
    張Boy閱讀 3,955評(píng)論 0 1
  • 想把以前的一個(gè)asp.NET網(wǎng)站移植到django上涮雷,發(fā)現(xiàn)django對(duì)靜態(tài)資源似乎支持的不好,不能直接根據(jù)相對(duì)路...
    阡陌3536閱讀 155評(píng)論 0 0
  • 1.設(shè)置靜態(tài)文件路徑和動(dòng)態(tài)文件路徑 編輯 settings: 動(dòng)態(tài)文件設(shè)置 MEDIA_ROOT 和 MEDIA_...
    SingleDiego閱讀 3,757評(píng)論 0 3
  • 不會(huì)怎么樣 只是有點(diǎn)難過(guò) 只是有點(diǎn)迷茫 不知道究竟路在何方 出社會(huì)以后 才發(fā)現(xiàn)生活沒(méi)有那么容易 有點(diǎn)沒(méi)有辦法接受這...
    三小妹閱讀 76評(píng)論 0 0
  • 這是一個(gè)出游的季節(jié)轻局, 田野里有成熟的芬芳洪鸭, 拋開(kāi)浮躁,卸下攀比仑扑,毫無(wú)目的的瞎逛览爵; 這是一個(gè)任性的季節(jié), 空氣中聞到...
    朕從西北來(lái)閱讀 216評(píng)論 9 11