(Django 2.1)当媒体文件完美服务时,我无法提供静态文件?

Posted

技术标签:

【中文标题】(Django 2.1)当媒体文件完美服务时,我无法提供静态文件?【英文标题】:(Django 2.1)I can't serve static files while media files is bieng served perfectly? 【发布时间】:2019-11-25 04:07:53 【问题描述】:

静态文件总是给我一个 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

感谢您的每一种帮助。

【问题讨论】:

你设置DEBUG = False了吗? 不,我没有。 【参考方案1】:

我认为没有像 STATIC_DIR 这样的东西,但它是 STATICFILES_DIRS

而且您在关闭括号时在STATIC_ROOT 中犯了错字

只需将以下内容放入 settings.py 中,删除所有与静态相关的内容即可。

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

【讨论】:

STATIC_ROOT 错字不在设置中,我想将静态文件目录命名为静态文件是什么造成了问题,我会试试的,谢谢! @AMMARRADY,请检查它是否有效并告诉我。

以上是关于(Django 2.1)当媒体文件完美服务时,我无法提供静态文件?的主要内容,如果未能解决你的问题,请参考以下文章

Django:当本地 .py 文件更改并动态加载时,有没有办法防止开发服务器重新启动?

为啥我的来自 Django 的 JSON 在大约 2.1MB 处被截断?

激活用户Django 2.1

将 Django 从 2.1 升级到 2.2.13 时如何修复 pyodbc 依赖错误?

无法连接到服务器:PostgreSQL -Heroku

Django本地调试时模拟服务器使用url方式访问静态文件(不建议使用)