来自STATIC_URL的Django 2图像未加载到Css中

问题描述 投票:1回答:2

我正在开发一个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的目录,并且在'django.contrib.staticfiles'中也有INSTALLED_APPS,然后我在css中提到了一些图像:

background: url('/assets/images/demo.png') center no-repeat;

该图像位于images文件夹中,但未显示在模板中。

这可能有什么不对?

python django django-2.0
2个回答
1
投票

您在css中指定的路径是相对于css文件路径的。因此,只有当您的css文件位于包含assets目录的目录中时,此URL才有效。

问题是你的css文件在哪里。假设它位于/ assets / css文件夹中(在assets内),您的网址应为:

background: url('../images/demo.png') center no-repeat;

0
投票

将以下代码段添加到您的urls.py文件中

# <----------- rest of the code----------->
urlpatterns += static('/assets/', document_root=settings.STATIC_ROOT) + static(
    settings.STATIC_URL, document_root=settings.STATIC_ROOT
)
© www.soinside.com 2019 - 2024. All rights reserved.