【发布时间】:2020-10-02 01:52:24
【问题描述】:
首先,我知道在 StackOverflow 中还有很多这样的问题。但它们似乎都不起作用。所以这里...
我正在通过tutorial 学习 django。该教程有点旧,但大部分代码是相同的。我尝试像教程一样将一些CSS 文件添加到项目中,但由于某种原因,它对我不起作用。这是我的文件结构...
src
├── assets
│ └── css
│ ├── base_styles.css
│ └── index_styles.css
├── core
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── settings.cpython-37.pyc
│ │ ├── urls.cpython-37.pyc
│ │ ├── views.cpython-37.pyc
│ │ └── wsgi.cpython-37.pyc
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
├── db.sqlite3
├── manage.py
├── test_app
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── admin.cpython-37.pyc
│ │ ├── models.cpython-37.pyc
│ │ ├── urls.cpython-37.pyc
│ │ └── views.cpython-37.pyc
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ └── __init__.cpython-37.pyc
│ ├── models.py
│ ├── templates
│ │ └── test_app
│ │ └── test_app_home.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
└── templates
├── aboutpage.html
├── base.html
└── homepage.html
请注意src 是根文件夹。 core 是项目名称,test_app 是应用程序名称
全局模板位于src/templates/ 下。 src/assets/css/ 包含全局模板的 css 文件。
这是我的settings.py 代码
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
...
...
STATIC_URL = '/static/'
STAITCFILES_DIRS = (
os.path.join(BASE_DIR, "assets"),
)
这是我的core/urls.py 文件
from django.contrib import admin
from django.urls import path, include
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test_app/', include('test_app.urls')),
path('about', views.aboutpage),
path('', views.homepage),
]
urlpatterns += staticfiles_urlpatterns()
这是我的base.html 文件。
{% load static %}
...
...
<link rel="stylesheet" href="{% static 'css/base_styles.css' %}">
...
...
我完成了教程所做的一切。我不确定为什么这不起作用。可能是因为教程有点旧,而我使用的是django 3.0.4?我可以在两个版本之间做出的唯一区别是使用{% load static %} 而不是{% load staticfiles %}。
我做错了什么?
【问题讨论】:
-
Django 1.11.6 -> 3.0.4 是巨大的尝试阅读文档,这是您可以尝试正确理解的最佳方法:docs.djangoproject.com/en/3.0/howto/static-files
-
@Shashank,我扫描了文档以查找此问题的答案。似乎没有任何效果。我现在该怎么办?
标签: python css django django-staticfiles django-3.0