Html 未找到Django全局静态文件
我正在尝试为我的项目创建/使用一个全局css文件,它似乎正在解析到正确的位置,但仍然找不到该文件 my settings.py文件的相关部分是:Html 未找到Django全局静态文件,html,css,django,django-staticfiles,static-files,Html,Css,Django,Django Staticfiles,Static Files,我正在尝试为我的项目创建/使用一个全局css文件,它似乎正在解析到正确的位置,但仍然找不到该文件 my settings.py文件的相关部分是: BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(u文件_uu))) STATIC\u ROOT=os.path.join(基本目录'abcdefg') 静态URL='/STATIC/' 静态文件\u目录=[ join(基本目录'static') ] 我在安装的应用程序中有django.
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(u文件_uu)))
STATIC\u ROOT=os.path.join(基本目录'abcdefg')
静态URL='/STATIC/'
静态文件\u目录=[
join(基本目录'static')
]
我在安装的应用程序中有django.contrib.staticfiles
我的文件结构是:
Project/
├── abcdefg/
│ ├── admin/
│ ├── App/
├── Project/
│ ├── __init__.py
│ ├── settings/
│ ├── urls.py
│ └── wsgi.py
├── App/
│ └── static
│ └── App
│ └── css
│ └── test.css
│ └── __init__.py
│ └── admin.py
│ └── apps.py
│ └── models.py
│ └── views.py
│
├── manage.py
│
├── static/
│ └── base
| └── css
| └── test.css
└── templates/
└── base.html
My base.html的外观如下所示:
{%load static%}
标题{%block Title%}{%endblock%}
{%block content%}
试验
{%endblock%}
当我尝试访问该页面时,出现以下错误:
[08/Feb/2020 11:26:50]“GET/static/base/css/test.css HTTP/1.1”4041683
这表明它指向了正确的位置,但实际上并没有抓取文件。如果我将base.html中的链接href更改为{%static'App/css/test.css%}
一切正常
我添加了一个STATIC_根映射到的位置,并运行了python manage.py collectstatic,但没有效果
我假设我在文档中忽略了一些愚蠢的东西,但是我基本上遵循了一个T,我没有得到要导入的全局文件
我已经将所有相关文件添加到GitHub中,这样我就不会只显示一点点代码。另外,这不是我的项目的正式回购协议,因此django机密是否可见并不重要。它应该是STATICFILES\u DIRS,而不是STATICFILES\u DIR。另外,最好将STATIC_ROOT设置为另一个文件夹,这样就不会覆盖全局静态文件。您需要在主项目目录中创建一个名为“static_files”的文件夹,并更改以下两行:
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')
STATICFILES_DIRS = [
('global', os.path.join(BASE_DIR, 'static')),
]
然后可以在以下位置加载全局文件:{%static'global/base/css/test.css%}它应该是STATICFILES\u DIR,而不是STATICFILES\u DIR。另外,最好将STATIC_ROOT设置为另一个文件夹,这样就不会覆盖全局静态文件。您需要在主项目目录中创建一个名为“static_files”的文件夹,并更改以下两行:
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')
STATICFILES_DIRS = [
('global', os.path.join(BASE_DIR, 'static')),
]
然后,您将能够在以下位置加载全局文件:{%static'global/base/css/test.css%}谢谢您,但不幸的是,这并不能解决此问题。我更新了原来的问题以反映这一点。为什么是“abcdefg”?它应该设置为STATIC_ROOT=os.path.join(BASE_DIR,'STATIC/')我没有将它设置为STATIC,因为当我运行collectstatic时,它会提示我覆盖已经在其中的文件。不管怎样,将其更改为os.path.join(BASE_DIR,'static/')似乎也不起作用。收集文件后,静态根文件夹是什么样子的?global.css在吗?谢谢你一直支持我。说去他妈的很容易。我真的很感谢你的帮助。谢谢你,但不幸的是,这并不能解决这个问题。我更新了原来的问题以反映这一点。为什么是“abcdefg”?它应该设置为STATIC_ROOT=os.path.join(BASE_DIR,'STATIC/')我没有将它设置为STATIC,因为当我运行collectstatic时,它会提示我覆盖已经在其中的文件。不管怎样,将其更改为os.path.join(BASE_DIR,'static/')似乎也不起作用。收集文件后,静态根文件夹是什么样子的?global.css在吗?谢谢你一直支持我。说去他妈的很容易。我真的很感谢你的帮助。