来自STATIC_URL的Django 2图片未加载到CSS中

时间:2019-03-06 14:28:41

标签: python django django-2.0

我正在研究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文件夹中,但未显示在模板中。

这有什么问题吗?

2 个答案:

答案 0 :(得分:1)

您在CSS中指定的路径相对于CSS文件路径。因此,仅当您的CSS文件位于包含资产目录的目录中时,此url才起作用。

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

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

答案 1 :(得分:0)

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

# <----------- rest of the code----------->
urlpatterns += static('/assets/', document_root=settings.STATIC_ROOT) + static(
    settings.STATIC_URL, document_root=settings.STATIC_ROOT
)