Je commence un projet et suite à la documentation, je n'ai pas réussi à inclure javascript.
Voici mes paramètres:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = '/static/'
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
J'ai donc un dossier statique créé dans mon projet avec un fichier javascript.
monprojet/static/app.js
mes urls.py:
urlpatterns = [
url(r'^$', 'app.views.home'),
url(r'^admin/', include(admin.site.urls)),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
et dans mon modèle: voici mon projet/templates/base.html:
<!DOCTYPE html>
<head>
{% load static %}
<script src="{% static 'app.js' %}"></script>
<title>Site<title>
</head>
<body>
<img src="{% static 'img.png' %}" alt="Mon image" />
{% block content %}{% endblock %}
</body>
</html>
Mon autre modèle:
{% block content %}
hello world
{% endblock %}
J'ai le "bonjour le monde" sur
mais je n'ai pas mon image ou script.
J'ai essayé tellement de choses différentes mais je n'y arrive jamais
urls.py
from Django.conf.urls import include, url
from Django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
]
settings.py
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_URL = '/static/'
# remove STATIC_ROOT
base.html
Votre balise de titre n'était pas fermée.
<!DOCTYPE html>
<head>
{% load static %}
<script src="{% static 'app.js' %}"></script>
<title>Site</title>
</head>
<body>
<img src="{% static 'img.png' %}" alt="Mon image" />
{% block content %}{% endblock %}
</body>
</html>
Votre modèle devrait indiquer {% load staticfiles %}
au lieu de {% load static %}
Source: https://docs.djangoproject.com/fr/1.8/howto/static-files/
En outre, os.path.join(BASE_DIR, "static"),
ne recherche que les fichiers statiques dans vos applications, comme dans app/static/app/static.js
. Si vous avez des fichiers statiques qui n'appartiennent à aucune application spécifique, mais plutôt au projet, vous devez ajouter le dossier explicitement. Voir le point 4 de 'Configuration de fichiers statiques' sur la page de documentation que j'ai mentionnée.