我通过谷歌搜索尝试了几次,但没有成功。我不认为我在做另一个 Jango 项目时是这样的,但我不知道为什么。
url.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from . import views
urlpatterns = [
path("admin/", admin.site.urls),
path("", views.HomeView.as_view(), name = 'home'), #to home.html
path("blog/", include('blog.urls')),
]
# urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
设置.py
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.1/howto/static-files/
STATIC_URL = "static/"
STATICFILES_DIR = (os.path.join(BASE_DIR, 'static'),)
# STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR),"static")
home.html
<img src="{% static 'assets/img/navbar-logo.svg' %}" alt="..." />
目录
Project-folder
|
|__config
| |__settings.py
| |__urls.py
|
|__app
|
|__template
| |__app
| | |__bla.html
| |__home.html
|
| #bootstrap
|__static
|__assets
|__img
...
摘自文档。
您的项目可能还会有不与特定应用程序绑定的静态资产。除了在应用程序中使用 static/ 目录之外,您还可以在设置文件中定义目录列表 (STATICFILES_DIRS),Django 还将在其中查找静态文件。
所以,使用字典列表,而且它是
STATICFILES_DIRS
而不是STATICFILES_DIR
S
。
试试这个:
STATIC_URL = 'static/'
STATICFILES_DIRS = [
BASE_DIR / "static"
]
或者这个:
STATIC_URL = 'static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
确保您已使用
% load static %
加载静态标签。
如果您尚未加载静态文件,请在您的 base.html 或 home.html 中尝试此操作:
{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">