Vous n'êtes pas identifié(e).
Bonjour à vous,
J'ai jamais eu de problème avant, concernant les fichiers statiques. Tout le site s'affiche, mais aucun css, image..
J'ai que recopier mon dossier sauvegarder ( qui fonctionnait bien avant ).
settings.py
STATIC_ROOT = '/home/myname/www/mysite/public/site_static/'
STATIC_URL = '/static/'
INSTALLED_APPS = (
'django.contrib.staticfiles',
)
Tout mes fichiers statiques sont dans le même dossier ( public/site_static/css/style.css , public/site_static/images/image1.jpg ...)
Normallement j'avais qu'à écrire au début de ma page principale.. ( site_base.html )
<link rel="stylesheet" type="text/css" href="/site_static/css/style.css">
j'ai essayer aussi
{% load staticfiles %}
<href="{% static "css/style.css" %}">
Il ne semble rien trouver, du tout. Malheureusement, je reçois aucune erreur pouvant m'aider. Même pas d'erreur 401, 404, 501
Que je devrais faire?
Dois-je créer une sous-dossier static, pour chaque application installé? Sachant que j'ai seulement besoin de 3 images et un style.css pour tout le site.
Avec : STATICFILES_DIRS =
en localhost, tout s'affiche..
Merci de m'aider.
Hors ligne
La bonne solution est de définir le STATICFILES_DIRS = [dir1, dir2, dir3] et d'utiliser le tag static dans les templates.
Hors ligne
merci pour ta réponse.
Que dois-je écrire dans STATIC_ROOT ? Puisqu'il me le demande.
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
#STATIC_ROOT = '/home/myname/www/mysite/public/static/'
# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
'/home/myname/www/mysite/public/static/'
)
./manage.py collectstatic
raise ImproperlyConfigured("You're using the staticfiles app "
django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
Donc, en résumé, je dois avoir un STATIC_ROOT ( surment le principale donc, /home/myname/www/mysite/public/statics)
ainsi que STATICFILES_DIRS, pour chaque sous-prépertoire static/ de chaque application?
ex: /home/myname/www/mysite/ ...acceuil/static..
De plus, je ne peux pas mettre le même STATIC_ROOT et STATICFILE_DIRS, identique.... ils doivent être différent.
Je comprend pas pourquoi.... J'ai qu'un seul fichier .css pour tout le site..
Dois-je recopier le .css pour chaque sous-répertoire.. Si je prend EXAMPLE sur n'importe quel site web. Tous les sites web ont les mêmes couleurs,formes sur chaque page.. il utilise tous 10,000 copies du même fichier (admettons style.css )? C'est absurde non?
Je peux comprendre, pour les photos, les vidéos, ( bref les médias )... mais les statics.. ils sont justement statique non?
Merci de m'aider.
Dernière modification par nolimitech (07-04-2015 17:27:58)
Hors ligne
Il te manque la virgule pour indiquer qu'il s'agit d'une liste: les parenthèses simples () ne sont pas une liste ce qui fait que ('toto') est pareil que 'toto'
Il faut préciser ('toto',)
Hors ligne
il faut également positionner le STATIC_ROOT
Hors ligne
Salut et merci.
Oui pour le point virgule, c'est en écrivant ici que j'ai dû l'enlever par erreur.
Je crois que je viens de comprendre que c'est tout ma structure qui est en défaut.
Tout mes templates sont dans un dossier, ainsi que mes statiques et médias.
Il ne sont pas dans chaque application.
C'est-à-dire que j'ai :
my site/
acceuil/
contact/
templates/
acceuil/
contact/
base.html
mysite
settings.py
urls.py
public
media/
static/
django.fcgi
.htaccess
manage.py
Je trouvais que ma manière était moins copier/coller ( les templates et les statics ) surtout s'ils sont identiques. Comme les .css et les images.
Je vais donc, tout modifié pour avoir, dans chaque application;
un dossier template/
un dossier static/
Mais, le STATIC_ROOT devient quoi? Je veux dire, qu'une fois que j'ai mis chaque dossier statique dans chaque application. Je n'ai plus de root.. ( dossier principale comme j'avais dans mon arborescence.. )
Pas grave, c'est déjà une début.
Je vais essayer, merci beaucoup
Merci pour ton aide
Hors ligne
Rebonjour,
Je tiens à vous dire, que mon hébergeur est alwaysdata. lorsque j'étais en local, tout fonctionnait. Sur AlwaysData aussi, mais tout à commencer à se mélanger à force d'installer des modules.
J'avais donc, une copie.. c'est lorsque j'ai voulu mettre la copie de sauvegarde, que mes fichiers statiques n'ont plus fonctionné. C'est depuis ce temps, que je ne peux plus rien faire.
Bref..
J'ai tout modifié. Voici mon arboresecence:
http://www.hostingpics.net/viewer.php?id=324842arb2.jpg
Voici mon settings.
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__)).replace('\\','/')
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'static').replace('\\','/')
STATIC_URL = '/static/'#if DEBUG else 'http://mysite.alwaysdata.net/static/'
STATICFILES_DIRS = (
'public/static/',
)
# Templates files
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates').replace('\\','/'),
'~/www/mysite/templates/',
)
Lors du : ./manage collectstatic, il crée un fichier static avec tous les fichiers.. se qui est très bien.
Mais il ne lit toujours pas les statiques. Peu importe le chemin que j'essaie.
<img src="{% static "acceuil/acceuil.png" %}" alt="acceuil"" title="Acceuil">
<link rel="stylesheet" type="text/css" href="{% static "css/style.css"%}">
Pourtant je vois ( dans le code source ), que le static est devenu static/acceuil/acceuil.png... mais il ne lis rien.
Je ne comprend plus rien.
Je comprend le language python, je comprend les bases de django, j'avais un site qui fonctionnait avant.. et là plus rien.
Tout le site fonctionne, mais sans forme, ni image.
Es-ce que les statiques fonctionnent sans urls.py? C'est-à-dire, que lorsque je clique sur: www.my-site.com/static ( /static/css/style.css ), il m'affiche un erreur 404 ( Page not found )
en mode DEBUG, il devrait y avoir tout la listes des statics, non?
/static/
Quel erreur....
Merci de m'aider.. Je suis complètement perdu là.
Dernière modification par nolimitech (12-04-2015 17:39:49)
Hors ligne