【发布时间】:2018-11-12 11:17:17
【问题描述】:
是我在 Django 中的第一个应用程序,我正在尝试为生产准备我的 Django (2.0) 应用程序,但我无法使用 WhiteNoise 正确加载静态文件
我的日志中总是出现下一个错误
ValueError("Missing staticfiles manifest entry for '%s'" % clean_name)
ValueError: Missing staticfiles manifest entry for 'css/inicio.css'
[02/Jun/2018 14:40:37] ERROR [django.server:124] "GET /participation/prueba HTTP/1.1" 500 27
我有以下settings.py
...
DEBUG=False
DJANGO_APPS = ['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
#Delete for development whitenoise.runserver_nostatic
'whitenoise.runserver_nostatic',
'django.contrib.staticfiles',
'django.contrib.sites'
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
...
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles/')
STATICFILES_DIRS = (
(os.path.join(BASE_DIR, 'static')),
)
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
我的所有静态文件都在根级别的名为 static 的文件夹中, 当我运行 manage.py collectstatic 时,我会生成所有静态文件 staticfiles 目录,但不知何故我仍然无法让它运行。
我尝试隔离问题,我正在使用以下模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
{% load static %}
<link rel="stylesheet" href="{% static "css/inicio.css" %}">
</head>
<body>
{% for categoria in categoria_list %}
<p>
{{ categoria.titulo }}
</p>
{% endfor %}
</body>
</html>
我已经尝试将href的路径更改为
{% static "/css/inicio.css" %}
{% static "static/css/inicio.css" %}
但他们都没有加载
我也试过有和没有 'whitenoise.runserver_nostatic' 在 Django Apps 中加载,我一直得到相同的结果。
谁知道我做错了什么?
提前致谢。
【问题讨论】:
标签: python django production-environment django-staticfiles whitenoise