0

我想爲我的所有應用程序提供全局靜態文件和模板。我的應用程序也會有模板和靜態文件它看起來像這樣:Django全局靜態文件無法加載

我正在加載像我這樣的全局文件,但它不工作。

{% load staticfiles %} 

href="{% static 'bootstrap/css/bootstrap.min.css' %}" 

,我也得到:

「NetworkError:500內部服務器錯誤 - http://localhost:8000/static/bootstrap/css/bootstrap.min.css

通過我可以接觸到我的應用程序靜態的,但不是全局的樣子,我調試STATIC_ROOT和PROJECT_ROOT他們看起來不錯。

PROJECT_ROOT ='C:\\webpages\\client_portal\\client_portal' 

projectname]/     <- project root 
├── [projectname]/    <- Django root 
│ ├── __init__.py 
│ ├── settings/ 
│ ├── urls.py 
│ └── wsgi.py 
├── apps/ 
│ └── __init__.py 
│ 
├── manage.py 
│ 
├── static/ 
│ └── GLOBAL STATIC FILES 
└── templates/ 
    └── GLOBAL TEMPLATES 

我的settings.py看起來是這樣的:

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 

STATIC_ROOT = os.path.join(PROJECT_ROOT, '/static') 
STATIC_URL = '/static/' 

# Extra places for collectstatic to find static files. 
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, '/static'), 
) 
+0

請將static_root保留爲空字符串,然後檢查是否可以訪問靜態文件。 –

回答

-1

也許我不明白你的問題,但你這包括一個{% load staticfiles %}

+0

是的,它是包括,我得到一個錯誤 – jfk83

+0

「NetworkError:500內部服務器錯誤 - http://本地主機:8000 /靜態/引導程序/ css/bootstrap.min.css」 – jfk83

+0

static_root用於collectstatic時,所以正如@Amar所​​說的,請將static_root留空,然後再次檢查 – Zorig

0

STATIC_ROOT和STATICFILES_DIRS不應該是相同的。創建一個不同的目錄,例如staticfiles,以存儲您的開發靜態文件,並在STATICFILES_DIRS中使用它。

0

我認爲你的問題是你有一個不需要的正斜槓STATICFILES_DIRS。因此,改變這種:

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, '/static'), 
) 

這樣:

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'), 
) 

希望它能幫助,它在Django 2.0爲我工作,而無需使用PROJECT_ROOT既不STATIC_ROOT的。