2014-01-26 17 views
0

需要一些幫助,爲什麼靜態文件不顯示。不知道我做錯了什麼。我相信我在Django docs上正確地執行了這些步驟。Django靜態文件 - 我錯過了什麼?

下面是我用的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/'

我做錯了什麼。什麼?!

+0

您是否將DEBUG設置爲True(請參閱django.contrib.staticfiles.views.serve())。 – gdoumenc

+0

是 - 正在使用默認安裝。除了通過命令行顯示的內容外,沒有其他更改。包括'django.contrib.staticfiles'。 – thornomad

+1

看看[我的答案](http://stackoverflow.com/questions/21223884/html-background-image/21224602#21224602)到以前的問題。通過該清單來捕捉任何明顯的事情。 – Stephan

回答

2

如果實際上這些是您對項目進行的唯一更改,那麼您缺少一個重要步驟:將testapp添加到您的INSTALLED_APPS設置中。

默認STATICFILES_FINDERS使用FileSystemFinderAppDirectoriesFinderFileSystemFinderSTATICFILES_DIRS中查找文件。這默認爲一個空元組,所以Django不會以這種方式找到test.txtAppDirectoriesFinder查看INSTALLED_APPS中每個static目錄的內部。如果你還沒有添加testapp Django不會知道在那裏看。

好像有一個可怕的很多混亂有關Django是如何找到的靜態文件,但它幾乎等同於如何找到模板:STATICFILES_FINDERS〜= TEMPLATE_LOADERSSTATICFILES_DIRS〜= TEMPLATE_DIRS

+0

這就是爲什麼它不在測試案例中工作 - 謝謝。我知道我錯過了一些基本的東西。吉茲。 *頭掌* – thornomad