首页 > 解决方案 > Django 不加载静态文件 ValueError("Missing staticfiles manifest entry for '%s'" % clean_name)

问题描述

是我在 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" %}

但他们都没有让它加载

此外,我尝试了在 Django 应用程序中加载和不加载“whitenoise.runserver_nostatic”,并且我一直得到相同的结果。

任何人都知道我做错了什么?

提前致谢。

标签: pythondjangoproduction-environmentdjango-staticfileswhitenoise

解决方案


尝试删除此行,

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

来源:https ://stackoverflow.com/a/32347324/2596187


推荐阅读