我正在学习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\第一个博客\静态 *
4条答案
按热度按时间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' % }">
没有指向正确的目录。我看了文档,似乎您的文件夹结构没有以正确的方式形成。下面是一个模板,说明所有内容应该如何结构化:
在你提供的截图中,看起来你的模板文件夹在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(
knsnq2tg2#
请注意:将
Debug = False
保留在本地可能会导致css无法加载的错误。将Debug = True
更改为使用django在本地运行css。llew8vvj3#
“白噪声”可以解决“MIME类型”错误然后加载CSS:
首先,安装**“白噪声”**:
然后,将其添加到**”www.example.com“中的“MIDDLEWARE”settings.py。就这样。最后,加载CSS**:
aelbi1ox4#
“whitenoise”可以解决“MIME类型”错误,然后加载CSS:
首先,安装“白噪声”:
中间件安全性中间件安全性中间件安全性中间件安全性中间件