{"title":"Déploiement des fichiers statiques","version":"2.0","locale":"fr","docname":"howto/static-files/deployment","url":"/fr/2.0/howto/static-files/deployment/","canonical":"https://djangodocs.dev/fr/2.0/howto/static-files/deployment/","summary":"Voir aussi Pour une introduction à l’utilisation de django.contrib.staticfiles , lisez Gestion des fichiers statiques (par ex. images, JavaScript, CSS) . Service…","html":"<h1>Déploiement des fichiers statiques<a class=\"heading-anchor\" href=\"#deploying-static-files\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Voir aussi</p>\n<p>Pour une introduction à l’utilisation de <a class=\"reference internal\" href=\"/fr/2.0/ref/contrib/staticfiles/#module-django.contrib.staticfiles\" title=\"django.contrib.staticfiles: An app for handling static files.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code></a>, lisez <a class=\"reference internal\" href=\"/fr/2.0/howto/static-files/\"><span class=\"doc\">Gestion des fichiers statiques (par ex. images, JavaScript, CSS)</span></a>.</p>\n</aside>\n<section id=\"serving-static-files-in-production\">\n<span id=\"staticfiles-production\"></span><h2>Service des fichiers statiques en production<a class=\"heading-anchor\" href=\"#serving-static-files-in-production\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>La procédure de base de la mise en production des fichiers statiques est simple : lancer la commande <a class=\"reference internal\" href=\"/fr/2.0/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> lors de changements de fichiers statiques, puis s’occuper de déplacer le répertoire des fichiers statiques rassemblés (<a class=\"reference internal\" href=\"/fr/2.0/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a>) vers le serveur de fichiers statiques afin qu’ils soient accessibles. En fonction de <a class=\"reference internal\" href=\"/fr/2.0/ref/settings/#std-setting-STATICFILES_STORAGE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_STORAGE</span></code></a>, il se peut que les fichiers doivent être déplacés manuellement vers un nouvel emplacement, ou alors c’est la méthode <a class=\"reference internal\" href=\"/fr/2.0/ref/contrib/staticfiles/#django.contrib.staticfiles.storage.StaticFilesStorage.post_process\" title=\"django.contrib.staticfiles.storage.StaticFilesStorage.post_process\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">post_process</span></code></a> de la classe <code class=\"docutils literal notranslate\"><span class=\"pre\">Storage</span></code> qui prend cela en charge.</p>\n<p>Naturellement, comme pour toute tâche de déploiement, le diable est dans les détails. Chaque configuration de production est légèrement différente, il faut donc adapter la procédure de base à chaque situation. Vous trouverez ci-dessous quelques cas fréquents qui peuvent vous aider.</p>\n<section id=\"serving-the-site-and-your-static-files-from-the-same-server\">\n<h3>Site et fichiers statiques sur le même serveur<a class=\"heading-anchor\" href=\"#serving-the-site-and-your-static-files-from-the-same-server\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Si vous souhaitez servir les fichiers statiques à partir du même serveur qui s’occupe déjà de votre site, le processus peut ressembler à ceci :</p>\n<ul class=\"simple\">\n<li><p>Envoyer votre code vers le serveur de déploiement.</p></li>\n<li><p>Sur le serveur, lancer <a class=\"reference internal\" href=\"/fr/2.0/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> pour copier tous les fichiers statiques dans <a class=\"reference internal\" href=\"/fr/2.0/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a>.</p></li>\n<li><p>Configurer le serveur Web pour qu’il serve les fichiers de <a class=\"reference internal\" href=\"/fr/2.0/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> sous l’URL <a class=\"reference internal\" href=\"/fr/2.0/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a>. Par exemple, voici <a class=\"reference internal\" href=\"/fr/2.0/howto/deployment/wsgi/modwsgi/#serving-files\"><span class=\"std std-ref\">comment faire cela avec Apache et mod_wsgi</span></a>.</p></li>\n</ul>\n<p>You’ll probably want to automate this process, especially if you’ve got\nmultiple web servers.</p>\n</section>\n<section id=\"serving-static-files-from-a-dedicated-server\">\n<h3>Fichiers statiques sur un serveur dédié<a class=\"heading-anchor\" href=\"#serving-static-files-from-a-dedicated-server\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>La plupart des gros sites Django utilisent un serveur Web séparé (c’est-à-dire qui n’héberge pas Django) pour servir les fichiers statiques. Ce serveur utilise fréquemment un autre type de serveur Web, plus rapide mais moins riche en fonctions. Voici quelques choix populaires :</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference external\" href=\"https://nginx.org/en/\">Nginx</a></p></li>\n<li><p>Une version allégée d”<a class=\"reference external\" href=\"https://httpd.apache.org/\">Apache</a></p></li>\n</ul>\n<p>La configuration de ces serveurs n’est pas dans le thème de ce document ; référez-vous à la documentation du serveur concerné pour toute information supplémentaire.</p>\n<p>Comme votre serveur de fichiers statiques ne fera pas tourner Django, vous devrez modifier la stratégie de déploiement pour qu’elle ressemble à ceci :</p>\n<ul class=\"simple\">\n<li><p>Lorsque des fichiers statiques sont modifiés, lancer <a class=\"reference internal\" href=\"/fr/2.0/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> localement.</p></li>\n<li><p>Envoyer le contenu local de <a class=\"reference internal\" href=\"/fr/2.0/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> vers le serveur de fichiers statiques dans le répertoire qui est servi. <a class=\"reference external\" href=\"https://rsync.samba.org/\">rsync</a> est un choix courant à cette étape car seuls les parties modifiées des fichiers statiques doivent être transférées.</p></li>\n</ul>\n</section>\n<section id=\"serving-static-files-from-a-cloud-service-or-cdn\">\n<span id=\"staticfiles-from-cdn\"></span><h3>Fichiers statiques sur un service cloud ou un CDN<a class=\"heading-anchor\" href=\"#serving-static-files-from-a-cloud-service-or-cdn\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Une autre tactique fréquente est de servir les fichiers statiques à partir d’un fournisseur de stockage en nuage (cloud) comme Amazon S3 ou un CDN (« content delivery network », réseau de fourniture de contenu). Cela vous permet d’oublier les problèmes liés au service de fichiers statiques et peut souvent accélérer le chargement des pages Web (particulièrement en ce qui concerne les CDN).</p>\n<p>Quand vous utilisez ces services, le processus de base ressemble un peu à ce qui a été montré ci-dessus, sauf qu’à la place d’utiliser <code class=\"docutils literal notranslate\"><span class=\"pre\">rsync</span></code> pour transférer les fichiers statiques vers le serveur, il est nécessaire de transférer les fichiers statiques chez le fournisseur de stockage ou le CDN.</p>\n<p>Ceci peut se faire de plusieurs manières, mais si le fournisseur propose une API, un <a class=\"reference internal\" href=\"/fr/2.0/howto/custom-file-storage/\"><span class=\"doc\">moteur personnalisé de stockage de fichiers</span></a> pourrait grandement faciliter ce processus. Si vous avez écrit un moteur personnalisé de stockage ou que vous en utilisez un de tierce partie, vous pouvez indiquer à <a class=\"reference internal\" href=\"/fr/2.0/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> de l’utiliser en renseignant <a class=\"reference internal\" href=\"/fr/2.0/ref/settings/#std-setting-STATICFILES_STORAGE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_STORAGE</span></code></a>.</p>\n<p>Par exemple, si vous avez écrit un moteur de stockage S3 dans <code class=\"docutils literal notranslate\"><span class=\"pre\">myproject.storage.S3Storage</span></code>, voici comment le configurer :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">STATICFILES_STORAGE</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;myproject.storage.S3Storage&#39;</span>\n</code></pre></div>\n<p>Après cela, tout ce qu’il vous reste à faire est de lancer <a class=\"reference internal\" href=\"/fr/2.0/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> et vos fichiers statiques seront envoyés vers S3 par l’intermédiaire de votre paquet de stockage. Si vous deviez ultérieurement passer à un autre fournisseur de stockage, il se pourrait que le seul changement nécessaire soit une modification du réglage <a class=\"reference internal\" href=\"/fr/2.0/ref/settings/#std-setting-STATICFILES_STORAGE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_STORAGE</span></code></a>.</p>\n<p>Pour plus de détails sur l’écriture d’un moteur de stockage, consultez <a class=\"reference internal\" href=\"/fr/2.0/howto/custom-file-storage/\"><span class=\"doc\">Écriture d’un système de stockage personnalisé</span></a>. Il existe des applications de tierce partie offrant des moteurs de stockage pour de nombreuses API de stockage de fichiers. Un bon point de départ est l”<a class=\"reference external\" href=\"https://djangopackages.org/grids/g/storage-backends/\">aperçu général sur djangopackages.org</a>.</p>\n</section>\n</section>\n<section id=\"learn-more\">\n<h2>En savoir plus<a class=\"heading-anchor\" href=\"#learn-more\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Pour des détails complets sur tous les réglages, les commandes, les balises de gabarit et les autres fonctions de <a class=\"reference internal\" href=\"/fr/2.0/ref/contrib/staticfiles/#module-django.contrib.staticfiles\" title=\"django.contrib.staticfiles: An app for handling static files.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code></a>, consultez <a class=\"reference internal\" href=\"/fr/2.0/ref/contrib/staticfiles/\"><span class=\"doc\">la référence de staticfiles</span></a>.</p>\n</section>","rootId":"deploying-static-files","toc":[{"title":"Service des fichiers statiques en production","anchor":"serving-static-files-in-production","children":[{"title":"Site et fichiers statiques sur le même serveur","anchor":"serving-the-site-and-your-static-files-from-the-same-server","children":[]},{"title":"Fichiers statiques sur un serveur dédié","anchor":"serving-static-files-from-a-dedicated-server","children":[]},{"title":"Fichiers statiques sur un service cloud ou un CDN","anchor":"serving-static-files-from-a-cloud-service-or-cdn","children":[]}]},{"title":"En savoir plus","anchor":"learn-more","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"Guides pratiques","url":"/fr/2.0/howto/"}],"prev":{"docname":"howto/static-files/index","title":"Gestion des fichiers statiques (par ex. images, JavaScript, CSS)","url":"/fr/2.0/howto/static-files/"},"next":{"docname":"howto/windows","title":"Comment installer Django avec Windows","url":"/fr/2.0/howto/windows/"},"formats":{"html":"/fr/2.0/howto/static-files/deployment/","markdown":"/fr/2.0/howto/static-files/deployment.md","json":"/fr/2.0/howto/static-files/deployment.json"},"source":"https://github.com/django/django/blob/stable/2.0.x/docs/howto/static-files/deployment.txt","official":"https://docs.djangoproject.com/fr/2.0/howto/static-files/deployment/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}