【问题标题】:Django Static Files - what am I missing?Django 静态文件 - 我错过了什么?
【发布时间】:2014-01-26 17:10:58
【问题描述】:

需要一些帮助来了解为什么静态文件没有显示。不知道我做错了什么。我相信我在Django docs 正确地遵循了这些步骤。

以下是我使用 Django 1.6.1 版所采取的步骤

$ django-admin.py startproject django_test_static
$ cd django_test_static
$ ./manage.py startapp testapp
$ mkdir -p testapp/static/testapp
$ echo "hi there" > testapp/static/testapp/test.txt
$ ./manage.py runserver

然后当我尝试检索文件时,它不起作用:

[26/Jan/2014 17:05:40] "GET /static/testapp/test.txt HTTP/1.1" 404 1652

1.6.1 预装了django.contrib.staticfilesSTATIC_URL = '/static/'

我做错了什么。什么?!

【问题讨论】:

  • 您是否将 DEBUG 设置为 True(参见 django.contrib.staticfiles.views.serve())。?
  • 是的 - 我正在使用默认安装。除了我通过命令行显示的内容外,没有任何变化。 django.contrib.staticfiles 包括在内。
  • 查看my answer 上一个问题。仔细检查该清单以发现任何明显的东西。
  • 你能发布你的urls.py吗?

标签: python django


【解决方案1】:

如果事实上这些是您对项目所做的唯一更改,那么您错过了一个重要步骤:将testapp 添加到您的INSTALLED_APPS 设置中。

默认的STATICFILES_FINDERS 使用FileSystemFinderAppDirectoriesFinderFileSystemFinderSTATICFILES_DIRS 中查找文件。这默认为一个空元组,因此 Django 不会以这种方式找到test.txtAppDirectoriesFinder 在每个INSTALLED_APPS 内的static 目录内查找。如果你还没有添加testapp Django 不会知道去那里看的。

对于 Django 如何查找静态文件似乎有很多困惑,但它与查找模板的方式几乎相同:STATICFILES_FINDERS ~= TEMPLATE_LOADERSSTATICFILES_DIRS ~= TEMPLATE_DIRS

【讨论】:

  • 这就是为什么它在测试用例中不起作用 - 谢谢。我知道我错过了一些基本的东西。哎呀。 头掌
猜你喜欢
  • 1970-01-01
  • 2015-05-19
  • 2021-08-05
  • 2020-10-17
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
相关资源
最近更新 更多