应用程序外部的 Django 静态文件未加载
Django static files outside app not loading
如果我的静态文件位于应用程序内部,则它们可以正常加载,但如果它们位于应用程序外部,例如在我的项目目录中,它们将无法加载。我知道这似乎是一个被问过一百万次的问题,但我看不出要用我的代码更改什么。这是 Django 1.9
文件夹结构
/site
├── manage.py
├── project
│ ├── __init__.py
│ ├── settings.py
│ ├── static
│ │ └── main
│ │ ├── css
│ │ ├── fonts
│ │ ├── img
│ │ ├── libs
│ │ └── scripts
│ ├── templates
│ ├── urls.py
│ └── wsgi.py
├── app1
├── app2
└── app3
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rooms',
'events',
'activities',
]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIR = os.path.join(BASE_DIR, "static")
index.html
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static "main/css/bootstrap.css" %}">
<link rel="stylesheet" type="text/css" href="{% static "main/libs/animate.min.css" %}">
您将静态目录放在项目文件夹中,如果您希望它在那里(虽然不是正确的方式),您应该更改:
STATICFILES_DIR = os.path.join(BASE_DIR, "static")
至:
STATICFILES_DIR = os.path.join(BASE_DIR, "project/static")
** 我认为最好将静态文件夹放在项目文件夹之外(如果您想使用全局静态文件)**
我认为有一个拼写错误。应该是 STATICFILES_DIRS
而不是 STATICFILES_DIR
如果我的静态文件位于应用程序内部,则它们可以正常加载,但如果它们位于应用程序外部,例如在我的项目目录中,它们将无法加载。我知道这似乎是一个被问过一百万次的问题,但我看不出要用我的代码更改什么。这是 Django 1.9
文件夹结构
/site
├── manage.py
├── project
│ ├── __init__.py
│ ├── settings.py
│ ├── static
│ │ └── main
│ │ ├── css
│ │ ├── fonts
│ │ ├── img
│ │ ├── libs
│ │ └── scripts
│ ├── templates
│ ├── urls.py
│ └── wsgi.py
├── app1
├── app2
└── app3
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rooms',
'events',
'activities',
]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIR = os.path.join(BASE_DIR, "static")
index.html
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static "main/css/bootstrap.css" %}">
<link rel="stylesheet" type="text/css" href="{% static "main/libs/animate.min.css" %}">
您将静态目录放在项目文件夹中,如果您希望它在那里(虽然不是正确的方式),您应该更改:
STATICFILES_DIR = os.path.join(BASE_DIR, "static")
至:
STATICFILES_DIR = os.path.join(BASE_DIR, "project/static")
** 我认为最好将静态文件夹放在项目文件夹之外(如果您想使用全局静态文件)**
我认为有一个拼写错误。应该是 STATICFILES_DIRS
而不是 STATICFILES_DIR