2017-09-07 2 views
0

Les fichiers statiques des applications tierces ne sont pas mis à jour dans mon site Django lorsqu'il est servi dans un navigateur avec runserver.L'application Django ne met pas à jour les fichiers statiques dans le navigateur

Voici ma structure de fichier (avec de nombreux fichiers statiques):

- mysite 
    - mysite 
    - settings.py 
    - wsgi.py 
    . . . 
    - myapp 
    - templates 
     - base.html 
     - myapp.html 
    - models.py 
    - forms.py 
    . . . 
    - static 
    - MyApp 
     - mystyle.css 
    - autocomplete-light 
     - select2.css 

base.html:

{% load static %} 
<!DOCTYPE html> 
<html> 
<head> 
    <title> 
    {% block title %}Portal{% endblock title %} 
    </title> 
    {% block stylesheets %} 
    <link rel="stylesheet" type="text/css" href="{% static 'myapp/mystyle.css' %}?{% now "U" %}"/> 
    {% endblock stylesheets %} 
</head> 
<body> 
    {% block content %} 
    {% endblock content %} 
</body> 
<footer> 
    {% block footer %} 
    {% endblock footer %} 
</footer> 
</html> 

myapp.html:

{% extends "myapp/base.html" %} 
{% load static %} 
{% load crispy_forms_tags %} 
{% block title %}My App{% endblock title %} 
{% block stylesheets %} 
    {{ block.super }} 
{% endblock stylesheets %} 
{% block content %} 
    {% crispy formset helper %} 
{% endblock content %} 
{% block footer %} 
<script type="text/javascript" src="{% static 'admin/js/vendor/jquery/jquery.js' %}?{% now "U" %}"></script> 
{{ formset.media }} 
{% endblock %} 

settings.py (pièce pertinente):

STATIC_ROOT = 'C:/Users/username/mysite/static/' 
STATIC_URL = '/static/' 

J'ai utilisé python manage.py collectstatic pour collecter les fichiers statiques de mon application et de l'application tierce (django-autocomplete-light) dans le STATIC_ROOT. Ils existent dans le fichier STATIC_ROOT. J'ai ensuite servi sur mon site avec runserver. Les fichiers statiques sont chargés avec le site et leurs chemins correspondent à STATIC_ROOT. Lorsque je modifie les fichiers statiques (c'est-à-dire select2.css pour l'application de saisie semi-automatique), les modifications s'affichent dans STATIC_ROOT. Cependant, ils n'apparaissent pas dans le navigateur.

J'ai essayé de vider mon cache, de servir le site dans divers navigateurs, de tuer/redémarrer runserver, de tuer/redémarrer mon éditeur de texte, et de réexécuter collectstatic. Aucune de ces tentatives n'a fonctionné - les fichiers statiques ne seront tout simplement pas mis à jour lorsque le site est chargé.

Comment puis-je mettre à jour les fichiers statiques dans le navigateur? Je pense que je pourrais manquer un paramètre dans settings.py, ou il peut être un problème avec {{ formset.media }}. Je suis à perte, cependant.

+0

pouvez-vous regarder ce https://docs.djangoproject.com/en /1.11/intro/tutorial06/ – Robert

+0

J'ai lu ça, mais je ne vois rien qui ne va pas dans la façon dont j'ai mis les choses en place. à quoi pensez-vous en particulier? –

+0

Peut-être besoin de redémarrer et effacer tout le cache, peut-être votre navigateur retourne un cache_file (supprimer l'historique de votre navigateur) – dsgdfg

Répondre