Django静态文件在app之外没有加载

时间:2016-01-14 03:00:02

标签: django django-staticfiles django-1.9

我的静态文件如果位于应用程序内部,则会正常加载,但如果它们位于应用程序之外,就像在我的项目目录中一样,它们将无法加载。我知道这似乎是一个问了一百万次的问题,但我看不出我的代码会改变什么。这是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" %}">

2 个答案:

答案 0 :(得分:3)

我认为拼写错误。它应该是STATICFILES_DIRS而不是STATICFILES_DIR

答案 1 :(得分:0)

您将静态目录放在项目文件夹中,如果您希望它存在(虽然不是正确的方法),您应该更改:

STATICFILES_DIR = os.path.join(BASE_DIR, "static")

为:

STATICFILES_DIR = os.path.join(BASE_DIR, "project/static")

**我认为将静态文件夹放在项目文件夹之外会更好(如果你想使用全局静态文件)** **