激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - django中靜態文件配置static的方法

django中靜態文件配置static的方法

2021-02-22 00:22katios Python

我們可以使用Template 設置我們的網頁,同時,一個完美的網頁需要css,js,image 等靜態文件的支持,這篇文章主要介紹了django中靜態文件配置static的方法,感興趣的小伙伴們可以參考一下

環境

  1. centos7
  2. django 1.11
  3. nginx

白話

我們可以使用Template 設置我們的網頁,同時,一個完美的網頁需要css,js,image 等靜態文件的支持。

django中配置方式貌似有不少總,因為很多相關的博客寫的方式并不一致,當然這可能是django 的版本不同導致的。

當我們在一個項目下創建一個app后,我們就需要為該app下創建一個static 文件夾來存放相關靜態資源。

但創建了多個app后,就需要在多個app下創建static。

這樣引入了一個問題,因為,我們的可能用了同一個js文件。分別存放顯然是浪費加載時間。

于是在實際部署的時候,我們會將不同app下的static 文件放到一個“合適”的地方。提高資源加載速度,同時也方便管理。

好了,大概就是這個思路,我們下面介紹如何配置

配置

step one

?
1
2
3
4
5
6
7
8
9
--app
 --migrations
 --static
  --css
  --js
  --image
 --templates
 --__init__.py
 ...

文件結構如上所示,注意,我這里只展示了某app下的結構,而不是整個項目結構,可能你的沒有templates這個文件夾,這不要緊,這個是我創建的。

我們最好在static下分類好不同文件夾 css , js,image.(這是推薦的做法)

多個app時,我們就在不同的app 下創建static。(后面我們在講更合理的方法,這里需要這樣做為了你理清步驟)

step two

在settings.py中的STATIC_URL = '/static/'后面添加

?
1
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

這個STATIC_ROOT 就是我們最終部署時候需要使用的,解決資源分散的問題。

BASE_DIR 這個變量在settings.py的開始部分被定義,就是項目根目錄的目錄名。

os.path.join 方法,在項目根目錄下新建一個static文件夾。

我看到很多博客這里配置的很多,很亂,讓人摸不著頭腦。

這個地方完全可以這樣配置,加載我們的靜態資源。(信我,我可是被很多不負責任的博客坑慘了)

step three

創建文件夾完,配置文件這兩步都完成后,我們需要的就是把他放到網頁中顯示。

在app下新建一個templates,如果有就不用創建

?
1
2
3
4
5
6
7
8
--app
 --migrations
 --static
 --templates
  --appname
   --index.html
 --__init__.py
 ...

大家注意,我并沒有直接在templates下直接創建index.html ,而是創建了一個”appname”(就根據你的app來命名這樣不會沖突)。并在appname 下創建的index.html。

因為django去找template的時候是吧app下的templates ,存為一個list。如果我們多個app,就可能導致,想訪問app2的index,結果卻返回了app1的index.html。

index.html 內容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
{% load static %} #這個地方引入static這個文件
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 
</head>
<body>
<img src="{% static "image/logo.png" %}" alt="My image"/> #{% static "image/logo.png" %}表示路徑
 
</body>
</html>

這里的#號注釋是方便大家理解,并不是html支持的格式,粘貼的時候需要去掉

并在image文件夾下加入一張名為logo.png的圖片,因為圖片可以直觀的判讀我們的設置是否生效。

python manage.py runserver 0.0.0.0:9000

訪問你的9000端口,查看時候生效。注意我們到這里還未配置nginx.

如果正確,說明路徑沒問題。

step four

python manage.py collectstatic

該命令收集項目下的靜態文件,統一保存到 STATIC_ROOT 就是我們第二步,剛剛配置的。

?
1
2
3
4
5
6
7
--project
 --project
 --static
 --app1
 --app2
 --manage.py
 ...

step five

nginx 中配置

?
1
2
3
location ^~ /static/ {
 root /home/project/;
 }

這個地方 注意配置到static的上級就可以了。

我之前配置成了root /home/project/static 就會一直提示404

在部署的時候,django也建議將settings.py中的debug=True 改為debug=False。以保證安全性。

重新啟動nginx ,看看是否成功了呢?

如果成功了,可以將app下的static刪掉再試試,理論上也是可以成功的,因為此時我們已經將項目所有的靜態文件全都集中到了根目錄下的static中。

總結

配置靜態文件還是要先了解他是如何生效的,one by one,搞清邏輯。

那樣在配置才不會混亂,否則不同的教程只會讓人抓狂。

如果找不到相關博客的話,靜下心來閱讀官方文檔。你可以做到的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/sinat_21302587/article/details/74059078

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 午夜视频成人 | 国产69精品久久久久久 | 国产在线第一区 | 91精品国产91久久久久久 | 在线免费观看日韩视频 | av电影免费播放 | 成人羞羞网站入口 | 成年人视频在线免费播放 | 亚洲最新黄色网址 | 成人毛片av在线 | 一级一片免费 | 九九热在线视频观看 | 欧美大穴 | 欧美亚洲国产一区 | 欧美视频在线一区二区三区 | 久久久久久久久久久久久久久久久久 | 免费永久看羞羞片网站入口 | 97视频| 国产亚洲欧美日韩在线观看不卡 | 91精品国产刺激国语对白 | 爱视频福利| 毛片免费视频观看 | 日本aaaa片毛片免费观蜜桃 | 欧美一级毛片美99毛片 | 国产91对白叫床清晰播放 | 色婷婷久久久亚洲一区二区三区 | 国产精品久久久久久久四虎电影 | 日韩黄色av网站 | 4399一级成人毛片 | 欧美黄色性视频 | 4p嗯啊巨肉寝室调教男男视频 | 欧美一级免费视频 | 国产精品久久久久久久久久免 | 久久成人动漫 | 一级片免费在线 | 姑娘第四集免费看视频 | 99影视在线视频免费观看 | 操操操日日日干干干 | 日韩av成人| 一级在线观看 | 国产色视频一区 |