J'essaie de faire afficher mon image d'arrière-plan en utilisant css dans django 1.11.3 et j'ai reçu des erreurs 404 dans le terminal lors de l'exécution du serveur que l'image ne peut pas charger. Mon fichier css se charge et peut modifier le contenu de mon fichier home.html.

Home.html

{% extends 'layout.html' %}
{% load static %}
{% block content %}

<div class="container-fluid">
  <div class="row img-bg">
    <div class="col-sm-12">
      <a href='#'>My Button</a>
    </div>
  </div>
</div>

CSS -

.img-bg{
  background: url('../img/logo.png'); // 404 error
  background: url('../assets/img/logo.png'); // 404 error
  background: url("{% static 'img/logo.png' %}"); // 404 error
  background-size: 100% auto;
  height: 100px; 
  width: 100px;
}

Settings.py

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

Structure des dossiers

website_src
  --assets
    --css
      --style.css
    --img
       --logo.png
1
Rem 2 août 2017 à 03:11

2 réponses

Meilleure réponse

Modifiez votre fichier css car vous diffusez tous vos fichiers dans les éléments via /static/

.img-bg{
  background: url('/static/img/logo.png');
  background-size: 100% auto;
  height: 100px; 
  width: 100px;
}
1
Srinivas 2 août 2017 à 06:18

Modifiez les éléments suivants:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'assets'),
)

À:

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

Puis python manage.py collectstatic, voyez si cela vous aide.

0
almost a beginner 2 août 2017 à 01:05