需要一些帮助来解释为什么静态文件没有显示出来。不确定我做错了什么。我相信我在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.staticfiles
和STATIC_URL = '/static/'
。
我做错了什么。什么?!
答案 0 :(得分:2)
如果实际上这些是您对项目所做的唯一更改,那么您错过了一个重要步骤:将testapp
添加到INSTALLED_APPS
设置。
默认STATICFILES_FINDERS
使用FileSystemFinder
和AppDirectoriesFinder
。 FileSystemFinder
会在STATICFILES_DIRS
中查找文件。这默认为空元组,因此Django不会以这种方式找到test.txt
。 AppDirectoriesFinder
查看每个static
内的INSTALLED_APPS
目录。如果你还没有添加testapp
,Django就不会知道如何看待那里。
似乎有很多关于Django如何找到静态文件的混淆,但它几乎与找到模板的方式相同:STATICFILES_FINDERS
〜= TEMPLATE_LOADERS
和STATICFILES_DIRS
〜= { {1}}。