7 votes

Structure statique des dossiers dans Django 1.4 ?

Voici la nouvelle structure du projet (d'après les notes de version de Django 1.4).

myproject
|-- manage.py
|-- myproject
|   |-- \_\_init\_\_.py
|   |-- settings.py
|   |-- urls.py
|   \`-- wsgi.py
\`-- polls
    |-- \_\_init\_\_.py
    |-- models.py
    |-- tests.py
    \`-- views.py

Ce dont je ne suis pas sûr, c'est si je dois faire pointer STATIC_ROOT vers

myproject/myproject/static/ (avec settings.py, urls.py...)

OU

Le répertoire de premier niveau myproject/static (à côté de myproject, myapp1, myapp2) ?

7voto

okm Points 12374

STATIC_ROOT n'est pas lié à l'importation de Python, et dépend donc totalement de vous. Normalement, myproject/static/ Ainsi, les os.path.join(PROJECT_ROOT, 'static/') est plus facile.

mise à jour comme l'a suggéré San4ez, et des notes dans settings.py

# 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: "/home/media/media.lawrence.com/static/"  

Il est préférable de placer les fichiers statiques du poll en poll/static/ selon votre structure.

2voto

San4ez Points 4184

Je suis d'accord avec @okm pour dire que myproject/static/ est un bon endroit pour les éléments statiques, mais vous pouvez également stocker des images, css et js à l'intérieur de votre application dans le dossier myproject/polls/media . Ensuite, vous devez configurer django.contrib.staticfiles et copier les éléments statiques de l'application media à STATIC_ROOT avec la commande

python manage.py collectstatic

L'avantage de cette approche est qu'elle vous permet de diffuser votre application de manière statique et que votre application peut être utilisée librement dans d'autres projets.

1voto

Burhan Khalid Points 50578

STATIC_ROOT est juste un chemin d'accès à un fichier où le staticfiles contribu collectera et déposera tous les fichiers statiques. Il s'agit d'un emplacement pour collecter des éléments, c'est tout. L'essentiel est que cet emplacement soit stockage temporaire et est utilisé principalement lors de l'empaquetage de votre application pour le déploiement.

En staticfiles L'application recherche les éléments à collecter dans n'importe quel répertoire appelé static dans toutes les applications répertoriées dans INSTALLED_APPS et, en outre, tous les chemins d'accès aux fichiers supplémentaires énumérés dans la section STATICFILES_DIRS .

Pour mes projets, je crée un deploy dans lequel je crée un fichier www que j'utilise pour les fichiers statiques, et divers autres fichiers utilisés uniquement lors du déploiement. Ce répertoire se trouve au niveau supérieur du projet.

Vous pouvez faire pointer la variable vers n'importe quel emplacement sur lequel votre utilisateur a des droits d'écriture, il n'est pas nécessaire qu'il se trouve dans le répertoire du projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X