【问题标题】:CSS GET returns 404CSS GET 返回 404
【发布时间】:2016-06-27 12:58:00
【问题描述】:

我已经通过这里的线程:

https://stackoverflow.com/questions/15641603/django-get-css-returns-404

但解决方案没有帮助。

.css 文件是从 base.html 中加载的,重要的部分如下所示

<link href="{% static 'css/starter-template.css' %}" rel="stylesheet">

pycharm 给出的关于这个问题的确切信息是这样的:

"GET /static/css/starter-template.css HTTP/1.1" 404 1685

css 文件的路径也正确。这让我想知道:如果路径是正确的,那我为什么会得到 404?我该如何解决这个问题?

edit:根据要求,文件夹结构如下所示:

https://i.sli.mg/2MwZM4.png

starter-template.css 是导致 404 的文件。我在 base.html 中引用它

【问题讨论】:

  • 什么是从 /static/ 提供文件?
  • 鉴于您使用的是 pycharm,这仍然是开发吗?调试设置为 true 吗?
  • 了解您的目录结构也很有用。对我来说,10 个静态资产中有 9 个没有显示出来,因为我把它们放在了稍微不正确的地方
  • @RobertTownley 我已经编辑了我的帖子,请看一下。
  • @Sayse 是的,它正在开发中,调试设置为 true。

标签: django


【解决方案1】:

嗯...我认为问题在于您的 django 项目无法发现您在模板目录中创建的静态目录。

默认情况下,Django 将在 settings.py 中 INSTALLED_APPS 中每个文件夹内的名为“static”的文件夹内搜索静态资产。除非明确告知这样做,否则它不会在其他任何地方寻找资产。

这样做的设置是“STATICFILES_DIRS”,文档的相关部分在这里: https://docs.djangoproject.com/en/1.9/ref/settings/#std:setting-STATICFILES_DIRS

您可以在 settings.py 文件中使用静态目录的绝对路径,例如:

STATICFILES_DIRS = [
  '/home/rtownley/path_to_project/static/',
]

或者,如果导入了os并设置了BASE_DIR(在settings.py中都应该是默认的情况)

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

注意:如果您还没有这样做,如果您指定其他位置,您现在可能还需要设置 STATIC_ROOT(不完全确定是否是这种情况),但如果是这样,您可以在设置中进行设置.py 到类似的东西

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

【讨论】:

  • 没问题!乐于助人!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多