[英]Unable to serve static files in a Django development environment with Pinax
[英]Trying to serve django static files on development server - not found
我按照這個問題中的說明 , 文檔 ,我甚至看過這個 ,但到目前為止,我無法使用python manage.py runserver
獲取我的靜態文件。
這些是我的(相關?)設置:
STATIC_ROOT '/home/wayne/programming/somesite/static'
STATICFILES_DIRS ('/home/wayne/programming/somesite/static/styles',
'/home/wayne/programming/somesite/static/admin')
在我的urls.py中:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
# The rest of my urls here...
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
我在base.html中有以下代碼
<link rel="stylesheet" type="text/css" href="{% static "styles/main.css" %}">
{% block styles %}
{% for sheet in styles %}
<link rel="stylesheet" type="text/css" href="{% static sheet %}">
{% endfor %}
而且我保證我不會產生幻覺:
(.env)wayne:~/programming/somesite/static$ pwd
/home/wayne/programming/somesite/static
(.env)wayne:~/programming/somesite/static$ ls
admin styles
但是,當導航到http://localhost:8000/
我的網站缺少其樣式表時,當我轉到http://localhost:8000/static/styles/main.css
我得到'styles/main.css' could not be found
,並嘗試導航到localhost:8000/static/
,或localhost:8000/static/styles
它告訴我不允許使用目錄索引。
我在這里錯過了什么?
Django對靜態文件的處理仍然有點混亂,特別是在相關設置的命名方面。
簡短的回答是移動靜態文件; 代替
/home/wayne/programming/somesite/static
把它們放進去
/home/wayne/programming/somesite/yourapp/static
(其中“yourapp”顯然是主應用程序的名稱)。
更長的答案是,我認為你(可以理解)對各種設置感到困惑。 STATIC_ROOT
只指的是你的靜態文件應在運行后最終位置manage.py collectstatic
。 在本地開發時,您不需要這個集合(因為您不應該真正需要collectstatic
)。 無論哪種方式, STATIC_ROOT
應始終引用空目錄。
你的STATICFILES_DIRS
設置幾乎可以工作,除了你告訴Django它有兩個路徑應該找到靜態文件
/home/wayne/programming/somesite/static/styles
/home/wayne/programming/somesite/static/admin
所以當你做{% static "styles/main.css" %}
它會尋找
/home/wayne/programming/somesite/static/styles/styles/main.css
/home/wayne/programming/somesite/static/admin/styles/main.css
並且顯然不會找到他們。 可能有用的是
STATICFILES_DIRS = ('/home/wayne/programming/somesite/static',)
但是沒有必要這樣做,因為您可以依賴django.contrib.staticfiles.finders.AppDirectoriesFinder
(在默認的STATICFILES_FINDERS中 )並將靜態文件移動到app目錄。
希望這能把事情搞清楚一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.