【问题标题】:How to write django code inside css style tag to link images from static directory如何在 css 样式标签中编写 django 代码以链接静态目录中的图像
【发布时间】:2020-12-25 17:22:18
【问题描述】:

我想将 Django 代码写入 HTML 元素中的 CSS 样式标签,以便从静态目录中获取图像。这是我的原始代码

<a href="single.html" class="img" style="background-image: url(images/image_1.jpg);"></a>

我尝试了以下代码

<a href="single.html" class="img" style="background-image: {% static 'images/image_1.jpg' %};"></a>

但这对我不起作用,我该如何解决这个问题? 注意:我使用 {% load static %} 加载所有静态文件,css 和 js 工作正常,但我无法做到这一点。

【问题讨论】:

    标签: css django tags styles django-staticfiles


    【解决方案1】:

    首先在你的 settings.py 中添加这些代码

    STATIC_URL = '/static/'
    
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'myproject/static')
    ]
    
    
    # Media settings
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    MEDIA_URL = '/media/'
    

    然后在你的项目 urls.py 中添加这些代码

    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    

    然后将此行添加到您的html中

    style="background-image: url({%static 'images/person_1.jpg' %});"
    

    【讨论】:

      【解决方案2】:

      您可以检查您的根 project/settings.py 中是否有这样的内容:

      STATIC_ROOT = ''
      STATIC_URL = '/static/'
      STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
      

      然后,在你的根目录project/urls.py:

      from django.conf import settings
      from django.conf.urls.static import static
      
      urlpatterns = [...] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
      

      为了确定,请确保在进行这些更改后重新启动服务器。

      【讨论】:

        猜你喜欢
        • 2013-10-22
        • 1970-01-01
        • 2015-06-14
        • 2018-07-17
        • 1970-01-01
        • 2013-07-31
        • 2022-08-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多