来自 STATIC_URL 的 Django 2 图像未加载到 Css
Django 2 Images from STATIC_URL is not loading in Css
我正在开发一个 Django(2.1.7) 项目,我需要在 css 文件中加载一些图像。
这是我目前所拥有的:
来自 settings.py
:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/assets/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'assets'), ]
我在我的主项目文件夹中有一个名为 assets
的目录,在 INSTALLED_APPS
中也有 'django.contrib.staticfiles'
然后我在 css 中提到了一些图像:
background: url('/assets/images/demo.png') center no-repeat;
图像在 images
文件夹中可用,但未显示在模板中。
这里有什么问题吗?
您在 css 中指定的路径 相对于您的 css 文件路径 。因此,此 url 仅在您的 css 文件位于包含 assets 目录的目录中时才有效。
问题是您的 css 文件在哪里。假设它在 /assets/css 文件夹中(在 assets
内),您的 url 应该是:
background: url('../images/demo.png') center no-repeat;
将以下代码段添加到您的 urls.py
文件
# <----------- rest of the code----------->
urlpatterns += static('/assets/', document_root=settings.STATIC_ROOT) + static(
settings.STATIC_URL, document_root=settings.STATIC_ROOT
)
我正在开发一个 Django(2.1.7) 项目,我需要在 css 文件中加载一些图像。 这是我目前所拥有的:
来自 settings.py
:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/assets/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'assets'), ]
我在我的主项目文件夹中有一个名为 assets
的目录,在 INSTALLED_APPS
中也有 'django.contrib.staticfiles'
然后我在 css 中提到了一些图像:
background: url('/assets/images/demo.png') center no-repeat;
图像在 images
文件夹中可用,但未显示在模板中。
这里有什么问题吗?
您在 css 中指定的路径 相对于您的 css 文件路径 。因此,此 url 仅在您的 css 文件位于包含 assets 目录的目录中时才有效。
问题是您的 css 文件在哪里。假设它在 /assets/css 文件夹中(在 assets
内),您的 url 应该是:
background: url('../images/demo.png') center no-repeat;
将以下代码段添加到您的 urls.py
文件
# <----------- rest of the code----------->
urlpatterns += static('/assets/', document_root=settings.STATIC_ROOT) + static(
settings.STATIC_URL, document_root=settings.STATIC_ROOT
)