使用nginx部署Django靜態檔案配置

2022-06-11 04:09:09 字數 1725 閱讀 4909

首先,我們配置靜態檔案,要在setting.py裡面加入如下幾行**:

# settings.py

# the settings above

# static settings

static_url = '/static/'

# base_dir 是專案的絕對位址

static_root = os.path.join(base_dir, 'static')

#以下不是必須的

staticfiles_dirs = (

os.path.join(base_dir, 'static'),

)

1.static_root

static_root 是在部署靜態檔案時(pyhton manage.pyc ollectstatic)所有的靜態文靜聚合的目錄,static_root要寫成絕對位址,在這裡,比如我的專案mysite是/home/mysite/

那麼static_root 為 /home/mysite/static/

當部署專案時,在終端輸入:

static_root 是在部署的時候才發揮作用, 而實際情況下,靜態檔案的一般安放位置有兩種:

staticfiles_dirs = (

os.path.join(base_dir, 'static'),

)3.static_url

這樣子,瀏覽器會報錯, 沒有該頁面

那麼django是如何讓瀏覽器也可以訪問伺服器上的靜態檔案呢,前面已經說了,直接訪問伺服器本地的位址是不行的,那就需要乙個對映,django利用static_url來讓瀏覽器可以直接訪問靜態檔案,比如:

static_url = '/static/'
那麼就相當與訪問/home/mysite/static/myap/photo.png

所以在瀏覽器上,利用字首 static_url的具體內容,來對映static_root,

相當於 本地位址的static_root

# 配置靜態檔案url

static_url = '/static/'

# 配置聚合靜態檔案存放目錄,需要在根目錄下事先建立這個目錄

static_root = os.path.join(base_dir, "static")

# 配置上傳檔案上傳url

media_url = "/media/"

# 配置上傳檔案上傳存放目錄,需要在根目錄下事先建立這個目錄

media_root = os.path.join(base_dir, "media")

python manage.py collectstatic
3.nginx 示例**

location /media  

location /static

nginx完整配置

server 

location /media

location /static

}

nginx基於uwsgi部署django專案

1.安裝nginx yum install y nginx 需要epel源 2.安裝環境 可以考慮使用虛擬化環境,本處不再使用3.安裝uwsgi yum groupinstall development tools yum install zlib devel bzip2 devel pcre de...

nginx 基於uwsgi部署Django

1.安裝nginx yum install y nginx 需要epel源 2.安裝環境 可以考慮使用虛擬化環境,本處不再使用3.安裝uwsgi yum groupinstall development tools yum install zlib devel bzip2 devel pcre de...

Django用Nginx與uwsgi部署伺服器

urls.py from django.views.static import serve url中加入以下配置 url r static p.serve,url r media p.serve,url r views.home 安裝pip3 apt install python3 pip 安裝必備...