首先,我們配置靜態檔案,要在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 安裝必備...