一、背景
Django框架下,HTML頁面訪問CSS、JS、IMG等靜態文件,報404 Not Found。
二、最終解決方法
- settings.py文件配置好STATiC_URL、STATICFILES_DIRS以後,同時配置DEBUG=True
- 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/目錄的路由