{"title":"Come gestire file statici (Es. immagini, JavaScript, CSS)","version":"4.1","locale":"it","docname":"howto/static-files/index","url":"/it/4.1/howto/static-files/","canonical":"https://djangodocs.dev/it/4.1/howto/static-files/","summary":"I siti web generalmente necessitano di servire file aggiuntivi come immagini, JavaScript o CSS. In Django, vi facciamo riferimento come «file statici». Django offre…","html":"<h1>Come gestire file statici (Es. immagini, JavaScript, CSS)<a class=\"heading-anchor\" href=\"#how-to-manage-static-files-e-g-images-javascript-css\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>I siti web generalmente necessitano di servire file aggiuntivi come immagini, JavaScript o CSS. In Django, vi facciamo riferimento come «file statici». Django offre <a class=\"reference internal\" href=\"/it/4.1/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> per aiutarti a gestirli.</p>\n<p>Questa pagina descrive come puoi distribuire questi file statici.</p>\n<section id=\"configuring-static-files\">\n<h2>Configurazione file statici<a class=\"heading-anchor\" href=\"#configuring-static-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ol class=\"arabic\">\n<li><p>Assicurati che <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code> sia inserito in <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>.</p></li>\n<li><p>Nel tuo file dei settings, definisci <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a>, per esempio:</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\">STATIC_URL</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;static/&#39;</span>\n</code></pre></div>\n</li>\n<li><p>Nei tuoi template, usa il tag di template <a class=\"reference internal\" href=\"/it/4.1/ref/templates/builtins/#std-templatetag-static\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">static</span></code></a> per corstruire la URL per un dato percorso relativo usando lo <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATICFILES_STORAGE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_STORAGE</span></code></a> configurato.</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">static</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">img</span> <span class=\"na\">src</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">static</span> <span class=\"s1\">&#39;my_app/example.jpg&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span> <span class=\"na\">alt</span><span class=\"o\">=</span><span class=\"s\">&quot;My image&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</li>\n<li><p>Archivia i tuoi file statici in una cartella chiamata <code class=\"docutils literal notranslate\"><span class=\"pre\">static</span></code> nella tua app. Per esempio <code class=\"docutils literal notranslate\"><span class=\"pre\">my_app/static/my_app/example.jpg</span></code>.</p></li>\n</ol>\n<aside class=\"admonition-serving-the-files admonition\">\n<p class=\"admonition-title\">Servire i file</p>\n<p>In aggiunta a questi passaggi di configurazione, hai anche bisogno effettivamente di distribuire file statici.</p>\n<p>Durante lo sviluppo, se usi <a class=\"reference internal\" href=\"/it/4.1/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>, sarà fatto automaticamente da <a class=\"reference internal\" href=\"/it/4.1/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a> quando <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> è <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (vedi <a class=\"reference internal\" href=\"/it/4.1/ref/contrib/staticfiles/#django.contrib.staticfiles.views.serve\" title=\"django.contrib.staticfiles.views.serve\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.views.serve()</span></code></a>).</p>\n<p>Questo metodo è <strong>altamente inefficiente</strong> e probabilmente <strong>poco sicuro</strong>, per questo è <strong>inadeguato alla produzione</strong>.</p>\n<p>Consulta la documentazione <a class=\"reference internal\" href=\"/it/4.1/howto/static-files/deployment/\"><span class=\"doc\">Come distribuire file statici</span></a> per le migliori strategie per distribuire file statici in ambienti di produzione.</p>\n</aside>\n<p>Il tuo progetto avrà probabilmente anche asset statici che non sono legati ad una app particolare. Oltre ad usare una directory <code class=\"docutils literal notranslate\"><span class=\"pre\">static/</span></code> nelle tue applicazioni, puoi definire una lista di directory (<a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a>) nel tuo file di impostazioni dove Django cercherà ulteriormente i file statici. Per esempio:</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_DIRS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">BASE_DIR</span> <span class=\"o\">/</span> <span class=\"s2\">&quot;static&quot;</span><span class=\"p\">,</span>\n    <span class=\"s1\">&#39;/var/www/static/&#39;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Consulta la documentazione per la configurazione relativa a <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATICFILES_FINDERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_FINDERS</span></code></a> per i dettagli su come <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> trova i tuoi files.</p>\n<aside class=\"admonition-static-file-namespacing admonition\">\n<p class=\"admonition-title\">Namespacing dei file statici</p>\n<p>Come per i template, <em>potremmo</em> semplicemente inserire i nostri file statici direttamente in <code class=\"docutils literal notranslate\"><span class=\"pre\">my_app/static/</span></code> (anziché creare un’altra sottodirectory <code class=\"docutils literal notranslate\"><span class=\"pre\">my_app</span></code>), ma sarebbe certamente una cattiva idea. Django sceglierà il primo file statico che troverà con un nome che corrisponde, e se tu avessi un file statico con lo stesso nome in una app <em>diversa</em>, Django non saprebbe come distinguere fra i due. Dobbiamo essere in grado di puntare Django sul file corretto, ed il modo migliore per farlo è quello di inserirlo in un <em>namespace</em>. Cioè, inserendo questi file statici dentro <em>un’altra</em> directory che abbia come nome il nome della app stessa.</p>\n<p>Puoi assegnare namespace agli asset statici in  <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a> specificando <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#staticfiles-dirs-prefixes\"><span class=\"std std-ref\">prefissi</span></a>.</p>\n</aside>\n</section>\n<section id=\"serving-static-files-during-development\">\n<span id=\"serving-static-files-in-development\"></span><h2>Servire file statici durante lo sviluppo<a class=\"heading-anchor\" href=\"#serving-static-files-during-development\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Se usi <a class=\"reference internal\" href=\"/it/4.1/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> come spiegato sopra, <a class=\"reference internal\" href=\"/it/4.1/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a> lo farà automaticamente se <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> è impostato su <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Se non hai <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code> in <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>, puoi comunque servire manualmente i file statici usando la vista <a class=\"reference internal\" href=\"/it/4.1/ref/views/#django.views.static.serve\" title=\"django.views.static.serve\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.views.static.serve()</span></code></a>.</p>\n<p>Questo non è adatto per un utilizzo in produzione! Per alcune strategie di pubblicazione comuni, guarda <a class=\"reference internal\" href=\"/it/4.1/howto/static-files/deployment/\"><span class=\"doc\">Come distribuire file statici</span></a>.</p>\n<p>For example, if your <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> is defined as <code class=\"docutils literal notranslate\"><span class=\"pre\">static/</span></code>, you can\ndo this by adding the following snippet to your <code class=\"docutils literal notranslate\"><span class=\"pre\">urls.py</span></code>:</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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.conf</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">settings</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.conf.urls.static</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">static</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># ... the rest of your URLconf goes here ...</span>\n<span class=\"p\">]</span> <span class=\"o\">+</span> <span class=\"n\">static</span><span class=\"p\">(</span><span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">STATIC_URL</span><span class=\"p\">,</span> <span class=\"n\">document_root</span><span class=\"o\">=</span><span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">STATIC_ROOT</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Nota</p>\n<p>Questa funzione helper funziona solo in modalità debug e solo se il prefisso dato è locale (ad esempio <code class=\"docutils literal notranslate\"><span class=\"pre\">static/</span></code>) e non un URL (es: <code class=\"docutils literal notranslate\"><span class=\"pre\">http://static.example.com/</span></code>).</p>\n<p>Anche questa funzione helper serve solo la cartella <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a>; non esegue la disocvery dei file statici come <a class=\"reference internal\" href=\"/it/4.1/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>.</p>\n<p>Infine, i file statici sono serviti via wrapper al livello di applicazione WSGI. Di conseguenza, le richieste a file static non passano attraverso la normale <a class=\"reference internal\" href=\"/it/4.1/topics/http/middleware/\"><span class=\"doc\">catena di middleware</span></a>.</p>\n</aside>\n</section>\n<section id=\"serving-files-uploaded-by-a-user-during-development\">\n<span id=\"serving-uploaded-files-in-development\"></span><h2>Distribuire file caricati da un utente durante lo sviluppo<a class=\"heading-anchor\" href=\"#serving-files-uploaded-by-a-user-during-development\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Durante lo sviluppo, è possibile servire file multimediali caricati dall’utente da:setting:MEDIA_ROOT  utilizzando la vista <a class=\"reference internal\" href=\"/it/4.1/ref/views/#django.views.static.serve\" title=\"django.views.static.serve\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.views.static.serve()</span></code></a>.</p>\n<p>Questo non è adatto per un utilizzo in produzione! Per alcune strategie di pubblicazione comuni, guarda <a class=\"reference internal\" href=\"/it/4.1/howto/static-files/deployment/\"><span class=\"doc\">Come distribuire file statici</span></a>.</p>\n<p>Ad esempio, se il tuo <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> è definita come <code class=\"docutils literal notranslate\"><span class=\"pre\">media/</span></code>, puoi farlo aggiungendo il seguente snippet al tuo:setting:ROOT_URLCONF:</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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.conf</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">settings</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.conf.urls.static</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">static</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># ... the rest of your URLconf goes here ...</span>\n<span class=\"p\">]</span> <span class=\"o\">+</span> <span class=\"n\">static</span><span class=\"p\">(</span><span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">MEDIA_URL</span><span class=\"p\">,</span> <span class=\"n\">document_root</span><span class=\"o\">=</span><span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">MEDIA_ROOT</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Nota</p>\n<p>Questa funzione di supporto è disponibile solo in modalità debug e solo se il prefisso è locale (es. <code class=\"docutils literal notranslate\"><span class=\"pre\">media/</span></code>) ma non unaURL (es. <code class=\"docutils literal notranslate\"><span class=\"pre\">http://media.example.com/</span></code>).</p>\n</aside>\n</section>\n<section id=\"testing\">\n<span id=\"staticfiles-testing-support\"></span><h2>Testing<a class=\"heading-anchor\" href=\"#testing\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Quando si eseguono test che utilizzano richieste HTTP effettive invece del client di test integrato (per esempio utilizzando <a class=\"reference internal\" href=\"/it/4.1/topics/testing/tools/#django.test.LiveServerTestCase\" title=\"django.test.LiveServerTestCase\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LiveServerTestCase</span></code></a>) gli asset statici devono essere serviti insieme al resto del contenuto in modo che l’ambiente di test riproduca quello reale il più fedelmente possibile, ma <code class=\"docutils literal notranslate\"><span class=\"pre\">LiveServerTestCase</span></code> ha solo funzionalità di servizio di file statici molto basilari: non conosce la funzione di ricerca dell’applicazione <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> e presuppone il il contenuto statico sia già stato collezionato in <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a>.</p>\n<p>A causa di ciò, <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> offre la propria <a class=\"reference internal\" href=\"/it/4.1/ref/contrib/staticfiles/#django.contrib.staticfiles.testing.StaticLiveServerTestCase\" title=\"django.contrib.staticfiles.testing.StaticLiveServerTestCase\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.testing.StaticLiveServerTestCase</span></code></a>, una sottoclasse di quella built-in che ha l’abilità di servire trasparentemente tutti gli asset durante l’esecuzione di questi test in modo molto simile a quello che si ottiene durante lo sviluppo con <code class=\"docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code>, cioè senza doverli collezionare usando prima <a class=\"reference internal\" href=\"/it/4.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a>.</p>\n</section>\n<section id=\"deployment\">\n<h2>Deployment<a class=\"heading-anchor\" href=\"#deployment\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/it/4.1/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> fornisce un comando di gestione comodo per la raccolta di file statici in un’unica directory in modo da poterli servire facilmente.</p>\n<ol class=\"arabic\">\n<li><p>Imposta il valore di <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> alla directory da cui desideri servire questi file, ad esempio:</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\">STATIC_ROOT</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/var/www/example.com/static/&quot;</span>\n</code></pre></div>\n</li>\n<li><p>?Avvia il comando  <a class=\"reference internal\" href=\"/it/4.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a></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>$ python manage.py collectstatic\n</code></pre></div>\n<p>Questo copia tutti i file dalla tua cartella static nella cartella definita in <a class=\"reference internal\" href=\"/it/4.1/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> .</p>\n</li>\n<li><p>Utilizza un web server a tua scelta per distribuire i files. <a class=\"reference internal\" href=\"/it/4.1/howto/static-files/deployment/\"><span class=\"doc\">Come distribuire file statici</span></a>  copre alcune delle strategie di distribuzione comuni per i file statici.</p></li>\n</ol>\n</section>\n<section id=\"learn-more\">\n<h2>Per saperne di più<a class=\"heading-anchor\" href=\"#learn-more\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Questo documento ha coperto le basi ed alcuni pattern di utilizzo comuni. Per avere dettagli completi su tutte le impostazioni, i comandi, i tag di template ed altri frammenti inclusi in <a class=\"reference internal\" href=\"/it/4.1/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>, visita <a class=\"reference internal\" href=\"/it/4.1/ref/contrib/staticfiles/\"><span class=\"doc\">la guida di riferimento di staticfiles</span></a>.</p>\n</section>","rootId":"how-to-manage-static-files-e-g-images-javascript-css","toc":[{"title":"Configurazione file statici","anchor":"configuring-static-files","children":[]},{"title":"Servire file statici durante lo sviluppo","anchor":"serving-static-files-during-development","children":[]},{"title":"Distribuire file caricati da un utente durante lo sviluppo","anchor":"serving-files-uploaded-by-a-user-during-development","children":[]},{"title":"Testing","anchor":"testing","children":[]},{"title":"Deployment","anchor":"deployment","children":[]},{"title":"Per saperne di più","anchor":"learn-more","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"guide «How-to»","url":"/it/4.1/howto/"}],"prev":{"docname":"howto/overriding-templates","title":"Come sovrascrivere i templates","url":"/it/4.1/howto/overriding-templates/"},"next":{"docname":"howto/static-files/deployment","title":"Come distribuire file statici","url":"/it/4.1/howto/static-files/deployment/"},"formats":{"html":"/it/4.1/howto/static-files/","markdown":"/it/4.1/howto/static-files.md","json":"/it/4.1/howto/static-files.json"},"source":"https://github.com/django/django/blob/stable/4.1.x/docs/howto/static-files/index.txt","official":"https://docs.djangoproject.com/it/4.1/howto/static-files/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}