【问题标题】:Django Static Files(CSS) don't link with templateDjango 静态文件(CSS)不与模板链接
【发布时间】:2020-12-09 17:50:10
【问题描述】:

正如标题所说,静态文件没有加载到我的模板中。我已经尝试过处理它并查看类似的 StackOverflow 问题,但我找不到解决方案。我尝试使用浏览器的开发工具对其进行调试。

我尝试从那里打开 CSS 文件,但它只会导致我出现此错误。这使我得出结论,Django 似乎在静态文件夹中找不到base.css。我已经完成了manage.py collectstatic,所以应该没有问题。谢谢!

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/static/static/base.css
'static\base.css' could not be found

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

settings.py

# Static files (CSS, JavaScript, Images)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

模板

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

编辑:将{% static 'static/base.css' %} 还原为{% static 'css/base.css' %}

【问题讨论】:

  • 可能是 {% static 'base.css' %} 而不是 {% static 'static/base.css' %} ?
  • 我很抱歉{% static 'static/base.css' %} 是我试图让它发挥作用的事情之一,哈哈。但是之前我已经尝试过{% static 'base.css' %}{% static 'css/base.css' %},还是不行。

标签: css django django-staticfiles


【解决方案1】:

首先,您必须更正 settings.py :

STATIC_URL = '/static/'
STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static'),
]

然后,假设您将 css 文件 存储在 static/base.css 现在,写,{% static 'base.css' %},因为 django 默认会在您的应用中查找您的静态文件,因此您不必包含静态路径。

【讨论】:

  • 谢谢!!我能问你更多关于STATICFILES_DIRSTATIC_ROOT之间的区别吗?。
  • Static_Root 是您希望在生产时提供文件的路径。Static_Dirs 是在开发时提供静态文件的路径。 :)
猜你喜欢
  • 2019-05-28
  • 1970-01-01
  • 2021-05-31
  • 2013-04-06
  • 1970-01-01
  • 2013-06-18
  • 2020-02-26
  • 2015-06-14
  • 1970-01-01
相关资源
最近更新 更多