Django静态文件 - 我错过了什么?

时间:2014-01-26 17:10:59

标签: python django

需要一些帮助来解释为什么静态文件没有显示出来。不确定我做错了什么。我相信我在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/'

我做错了什么。什么?!

1 个答案:

答案 0 :(得分:2)

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

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

似乎有很多关于Django如何找到静态文件的混淆,但它几乎与找到模板的方式相同:STATICFILES_FINDERS〜= TEMPLATE_LOADERSSTATICFILES_DIRS〜= { {1}}。