首页 > 解决方案 > (Django 2.1)当媒体文件完美服务时,我无法提供静态文件?

问题描述

静态文件总是给我一个 404 错误,我不明白为什么,我复制了我以前使用过的样式,但没有使用这个版本的 django。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


STATIC_URL = '/static/'
STATIC_DIR = [
    os.path.join(BASE_DIR,"static")
               ]
STATIC_ROOT = os.path.join(BASE_DIR, 'static'

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

我一直在使用 cdn 和样式标签来处理这个项目,但现在我想把它包装起来并使用一些已经为我准备好的 css/js 文件。

我尝试收集静态文件python manage.py collectstatic,它收集了静态文件夹中的所有静态文件,但仍然没有加载它们并返回 404 错误

我的目录:

/Eyelizer
    /App1
    /App2
    /Eyelizer
    /static
        /css
             /main1.css
    /Eyelizer
        /css
            /wanted.css
        /js
           /wanted.js
        /images
    /templates
    /media

感谢您提供各种帮助并感谢您。

标签: djangodjango-rest-frameworkdjango-templatesdjango-staticfilesdjango-settings

解决方案


我不认为有类似的东西,STATIC_DIR但它是STATICFILES_DIRS

而且你在关闭括号时犯了一个拼写错误。STATIC_ROOT

settings.py只需通过删除所有与静态相关的东西来放入以下内容。

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'

推荐阅读