簡體   English   中英

試圖在開發服務器上提供django靜態文件 - 未找到

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM