Django靜態文件的加載以及STATIC_URL、 STATIC_ROOT 、STATICFILES_DIRS的區別

一、背景

    Django框架下,HTML頁面訪問CSS、JS、IMG等靜態文件,報404 Not Found。

二、最終解決方法

  1.   settings.py文件配置好STATiC_URL、STATICFILES_DIRS以後,同時配置DEBUG=True
  2.   HTML頁面使用使用load標籤導入static標籤:{%load static%},而不是導入staticfiles標籤。

三、相關知識

(1)Djangon生產環境靜態資源的處理

Django 關閉DEBUG模式後,就相當於是生產環境了。

Django框架一旦作爲生產環境,它的靜態文件訪問接口就不能從Django框架中走,必須在Django框架前端部署nginx或者其他web服務器來提供靜態訪問入口

With debug turned off Django won't handle static files for you any more - your production web server (Apache or something) should take care of that.

nginx配置如下:

server {
    listen         80;
    server_name    127.0.0.1
    charset UTF-8;
    access_log      /var/log/nginx/django_pro01_access.log;
    error_log       /var/log/nginx/django_pro01_error.log;
    client_max_body_size 75M;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
        uwsgi_read_timeout 2;
    }
    # 在nginx中要單獨做訪問/static/目錄的路由
   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章