[英]Static Files With Django Development Server 1.7 Slightly Different Directory Settings
這是我的網站目錄:
django_project
\bin
\include
\lib
\src
\django_project
settings.py
\app2
manage.py
\static
\js
\css
\media
\templates
base.html
我添加到settings.py中的是:
STATIC_URL = '/static/'
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), "templates"),
)
if DEBUG:
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static"),
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media"),
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), "static"),
),
和我的urls.py:
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
嘿,它不起作用。 我在base.html中引用它們的方式是:
<link href="/static/css/bootstrap.min.css" rel="stylesheet">
有任何想法嗎?
謝謝。 哈桑
運行您粘貼的設置會給我一個錯誤的ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting
。 注釋掉os.path.join(os.path.dirname(BASE_DIR), "static"),
在設置中刪除了錯誤,並且模板正確地找到了CSS文件,而沒有對URLs.py進行修改。
首先,如@r --------- k所述,除元組外,我不應該有逗號結尾。 所以settings.py應該看起來像:
if DEBUG:
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media")
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), "static", "static")
),
第二件事是,您可能已經注意到,STATIC_ROOT和STATICFILES_DIRS不可能具有相同的值。 我在靜態文件夾中添加了另一個靜態文件夾,並將我的js和css文件夾放入其中:
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), "static", "static")
),
目錄如下:
django_project
\bin
\include
\lib
\src
\django_project
settings.py
\app2
manage.py
\static
\static
\js
\css
\media
\templates
base.html
最后,您應該在urls.py中包含urlpatterns:
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
這似乎在urls.py
中的當前django(2.2)中有效:
from django.conf import settings
from django.conf.urls.static import serve
from django.urls import include, path
urlpatterns += [
path(settings.STATIC_URL[1:], serve, {'document_root': settings.STATIC_ROOT })
]
請記住運行./manage.py collectstatic
將靜態文件收集到settings.STATIC_ROOT
./manage.py collectstatic
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.