關於靜態檔案目錄與模板引用和Nginx location塊的適配設定

海上华帆發表於2024-07-16

專案配置檔案內關於靜態檔案的設定項

# 靜態檔案的 URL 字首
STATIC_URL = '/static/'

# 專案根目錄的靜態檔案目錄
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
    os.path.join(BASE_DIR, 'parallel/static'),
    os.path.join(BASE_DIR, 'blog/static'),
    os.path.join(BASE_DIR, 'app1/static'),
]

# 靜態檔案的根目錄(用於 collectstatic 命令)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
# 一般用於在生產環境中使用命令`python manage.py collectstatic`將所有靜態檔案統一收集到`staticfiles`

模板檔案中引用靜態檔案的格式

	{% load static %}
    <img src="{% static 'app1/img/carousel/平行世界.jpg' %}" alt="平行世界" class="d-block w-100 ">

真實檔案路徑

/home/lyh/aipw/app1/static/app1/img/carousel/平行世界.jpg

專案檔案的目錄結構

project_root/
├── static/
├── parallel/
│   └── static/
│          └──parallel/
│                    └──img/parallel-logo.png
├── blog/
│   └── static/
│          └──blog/
│                └──img/blog-logo.png
└── app1/
    └── static/
│          └──app1/
│                └──img/app1-logo.png

在生產環境中,Nginx的配置參考如下

location /static/ {
                alias /home/lyh/aipw/static/;

        }

        location /static/app1/ {
                alias /home/lyh/aipw/app1/static/app1/;
        }

        location /static/blog/ {
                alias /home/lyh/aipw/blog/static/blog/;
        }

        location /static/parallel/ {
                alias /home/lyh/aipw/parallel/static/parallel/;
        }

相關文章