0

我想讓一個現有的django應用程序啓動並運行,但是css或其他任何靜態文件都沒有顯示出來。我得到的錯誤:如何在django中設置靜態文件目錄

"GET /static/css/mycss.css HTTP/1.1" 404 50 

在設置中使用下列值:

DJANGO_ROOT = dirname(dirname(abspath(__file__))) 
SITE_ROOT = dirname(DJANGO_ROOT) 
STATIC_ROOT = normpath(join(SITE_ROOT, 'assets')) 
STATIC_URL = '/static/' 

STATICFILES_DIRS = (
    normpath(join(SITE_ROOT, 'static')), 
) 

該應用程序包含一個名爲「靜態」的目錄。這是在當前目錄結構:

my-django-project > my-django-project > static > css > mycss.css

當我通過本地主機打到家裏的網址,我得到上面的404錯誤。

我在做什麼錯?

+1

您還需要發佈您的網絡服務器配置。 Django通常不提供靜態文件,你應該配置你的web服務器來直接處理這些請求。 – lanzz

回答

0

您需要運行collectstatic命令將應用中的靜態文件收集到STATIC_ROOT

該命令可以像這樣運行:

python managy.py collectstatic 

有關靜態文件的詳細信息可以在django documentation on static files找到。

+0

我收集了所有的靜態文件,我仍然得到404s – Atma

+0

好吧,是一個新的目錄'my-django-project> static'創建的,它包含來自您的應用程序的靜態文件? – HAL

+0

是的,我看到一個名爲資產 – Atma

0

我用這CONF:

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
import os 
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 

STATIC_URL = '/static/' 

STATICFILES_DIR = (
    os.path.join(BASE_DIR, "static"), 
    '/home/<username>/my-django-project/my-django-project/static/', 
) 

注:我指定的靜態目錄的絕對路徑。