Django中没有加载CSS静态文件

ryoqjall  于 2022-12-01  发布在  Go
关注(0)|答案(4)|浏览(154)

我正在学习Django,我试图实现一个博客应用程序。我得到了一个错误,而使用项目内部的静态文件。我知道,有很多问题都有相同的标题。但我尝试了每一种方法,仍然没有在浏览器上呈现css文件。

文件夹结构:

firstBlog是项目名称。blog是firstBlog中的应用程序。allstaticfiles是STATIC_ROOT位置。static是用于存储静态内容的文件夹。templates用于存储各个应用程序的模板。

下面是我的一些代码:
settings.py

STATIC_URL = '/static_files/'

STATICFILES_DIRS = [
     os.path.join(BASE_DIR, "static"),
     '/Django/projects/project1/project1/firstBlog/static',
]
#print(os.path.exists(os.path.join(BASE_DIR,'static'))) ----------------TRUE

STATIC_ROOT=os.path.join(BASE_DIR, "allstaticfiles")

Base.html
我已经使用了**{% load static %}**并且为了加载css,我已经设置了如下的href属性。

<link rel="stylesheet" type="text/css" href="{% static 'blog/main.css' % }">

需要考虑的几件事:

1.当我在浏览器上查看我的页面时,它在控制台上给我错误,这可能是由于一些路径问题。
127.0.0.1/:1 拒绝应用来自'http://127.0.0.1:8000/blog/%7B%%20static%20' blog/main.css '%20%%20%7D'的样式,因为其MIME类型('text/html')不是支持的样式表MIME类型,并且启用了严格的MIME检查。
1.当我从localhost链接(即http://127.0.0.1:8000/blog/static_files/blog/main.css)查看样式时,它正在工作。
1.当我检查页面的查看源代码,然后点击href链接,它不加载css文件。

1.文件夹结构:*C:\用户\tedd\OneDrive\Django\项目\项目1\项目1\第一个博客\静态 *

cl25kdpy

cl25kdpy1#

我会尽力帮忙,但我不是Maven!
http://127.0.0.1:8000/blog/static_files/blog/main.css正常工作的原因是因为您直接访问了main.css文件。我假设您的<link rel="stylesheet" type="text/css" href="{% static 'blog/main.css' % }">没有指向正确的目录。
我看了文档,似乎您的文件夹结构没有以正确的方式形成。下面是一个模板,说明所有内容应该如何结构化:

[projectname]/                  <- project root
├── [projectname]/              <- Django root
│   ├── __init__.py
│   ├── settings/
│   │   ├── common.py
│   │   ├── development.py
│   │   ├── i18n.py
│   │   ├── __init__.py
│   │   └── production.py
│   ├── urls.py
│   └── wsgi.py
├── apps/
│   └── __init__.py
├── configs/
│   ├── apache2_vhost.sample
│   └── README
├── doc/
│   ├── Makefile
│   └── source/
│       └── *snap*
├── manage.py
├── README.rst
├── run/
│   ├── media/
│   │   └── README
│   ├── README
│   └── static/
│       └── README
├── static/
│   └── README
└── templates/
    ├── base.html
    ├── core
    │   └── login.html
    └── README

在你提供的截图中,看起来你的模板文件夹在django根目录下,而不是在项目根目录下。这一点很重要,因为它会在错误的位置搜索你的.css。
我建议您尝试修复目录,然后使用href="css/style.css"而不是href="{% static 'blog/main.css' % }">
请注意,它是css/style.css而不是style.css。在模板文件夹中,您可以创建一个名为css的文件夹,然后将所有的.css文件存储在其中。然后,您只需使用href=“css/style.css”指向css文件夹即可。
这应该作为一个临时的解决方案,直到有人更有知识可以给你正确的答案。
编辑:您的base.html应该也在模板文件夹中!因此:project_root/templates(在此处插入base.html)/css/(在此处插入您的.css(

knsnq2tg

knsnq2tg2#

请注意:将Debug = False保留在本地可能会导致css无法加载的错误。将Debug = True更改为使用django在本地运行css。

llew8vvj

llew8vvj3#

“白噪声”可以解决“MIME类型”错误然后加载CSS

首先,安装**“白噪声”**:

pip install whitenoise

然后,将其添加到**”www.example.com“中的“MIDDLEWARE”settings.py。就这样。最后,加载CSS**:

MIDDLEWARE = [
    # ...
    "django.middleware.security.SecurityMiddleware",
    "whitenoise.middleware.WhiteNoiseMiddleware", # Here
    # ...
]
aelbi1ox

aelbi1ox4#

“whitenoise”可以解决“MIME类型”错误,然后加载CSS:
首先,安装“白噪声”:

  1. pip install whitenoise 2)然后,将其添加到“www.example.com“中的“MIDDLEWARE”中settings.py。就这样。最后,加载CSS:
    中间件安全性中间件安全性中间件安全性中间件安全性中间件

相关问题