2012-07-29 210 views
1

我遇到了這裏的障礙,Django文檔和previous stack overflow questions沒有幫助。我已經閱讀了static files section in the docs,我似乎正在django.contrib.staticfiles做正確的事情。服務靜態文件錯誤「目錄索引不允許在這裏」

所以我試圖顯示我的靜態文件,我有點困惑,我做錯了什麼。當我訪問我的localhost:8000/static/網站時,出現404錯誤,「目錄索引不允許在這裏」。信息。我已經設置了我的STATIC_URL' = '/static/',我有一個靜態目錄,其中的文件位於我的newsletter應用程序中,該應用程序位於INSTALLED_APPS設置下。我甚至嘗試在STATICFILES_DIR設置中放置完整路徑,但這不起作用。

我見過人們試圖修改STATIC_ROOT設置,但如果我錯了,糾正我,我認爲這是在開發服務器上的不好的做法。任何線索?謝謝。

回答

2

討厭回答我自己的問題,但一個比我更多的django經驗的好友指出我正確的方向。我將我的靜態文件夾移動到manage.py所在的外部目錄中。將我的STATIC_URL更改爲/static,然後將urlpatterns += staticfiles_urlpatterns()添加到我的urls.py文件中。現在一切正常!

我還是有點困惑,因爲我認爲1.4我可以在我的應用程序下添加靜態目錄並讓它工作得很好......無論如何感謝所有的反應!

+0

這很奇怪。你是否手動將文件移動到外部目錄?你應該嘗試使用'python manage.py collectstatic'命令來做到這一點https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#django-admin-collectstatic – Intenex 2012-07-30 00:22:42

+0

是的 - 我手動移動它們。謝謝!我將不得不在下次嘗試。 – 2012-07-30 13:51:53

+0

奇怪的是你設置STATIC_URL = /靜態,它的工作原因是與Django-1。8它抱怨如果STATIC_URL不以/:django.core.exceptions.ImproperlyConfigured結束:如果設置,STATIC_URL必須以斜槓結尾 – Divick 2015-11-18 08:20:18

4

這就是說它不會生成包含該目錄中文件列表的HTML文檔(它指的是「目錄索引」)。您仍然應該能夠直接訪問這些文件。嘗試加載特定的文件,而不是隻將裸露的目錄名稱放入瀏覽器中。

+0

是 - 當我進入'...../my_project/my_app/static /'時,我可以看到我的文件很好。所以當我渲染我的模板時,這應該仍然有效?因爲在我的index.html文件中,我鏈接到了我的css文檔,並且我的鏈接是'src = {{STATIC_URL}} style.css',當我檢查get請求時,它只是直接向style.css和因此不會返回我的css文件。我是一個django noob..sorry哈 – 2012-07-29 02:55:00

0

根據您對Jim的回答的評論,它看起來像Django只是沒有爲{{STATIC_URL}}獲取適當的值。

看你的代碼,它看起來像在設置你

STATIC_URL' = '/static/' 

與STATIC_URL那裏不應該是一個經過單引號。嘗試

STATIC_URL = '/static/' 

這是否能解決您的問題?

+0

啊,只是注意到你實際上並沒有在你的瀏覽器中訪問該文件,你只是訪問了硬盤上的位置哈哈。 Jim的意思是嘗試訪問localhost:8000/static/style.css(如果這是你的css文件所在的位置)(不在你的計算機上/ my_project/my_app/static /),並查看它是否加載。如果它正確加載,一切工作正常,你應該能夠從你的模板訪問你的靜態文件。 – Intenex 2012-07-29 08:06:26

+0

好抓!幸運的是,這不是我的實際代碼哈哈 – 2012-07-29 15:35:04