中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用django怎么在靜態文件中配置static

發布時間:2021-05-19 16:59:54 來源:億速云 閱讀:173 作者:Leah 欄目:開發技術

這篇文章給大家介紹使用django怎么在靜態文件中配置static,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

step one

--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/'后面添加

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

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

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

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

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

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

step three

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

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

--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 內容

{% 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 就是我們第二步,剛剛配置的。

--project
 --project
 --static
 --app1
 --app2
 --manage.py
 ...

step five

nginx 中配置

 location ^~ /static/ {
  root /home/project/;
  }

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

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

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

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

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

關于使用django怎么在靜態文件中配置static就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陇川县| 宁国市| 芷江| 阜宁县| 乐都县| 宽甸| 札达县| 商水县| 琼结县| 马公市| 黑水县| 屏东县| 黄石市| 堆龙德庆县| 四川省| 舞钢市| 昌江| 江西省| 蒲城县| 崇仁县| 绵阳市| 沁源县| 龙川县| 中宁县| 大庆市| 岳阳县| 南召县| 织金县| 黄陵县| 湖南省| 河源市| 婺源县| 姜堰市| 北票市| 徐州市| 左权县| 五大连池市| 明光市| 富蕴县| 三台县| 吉水县|