{"title":"Aplikasi staticfiles","version":"5.2","locale":"id","docname":"ref/contrib/staticfiles","url":"/id/5.2/ref/contrib/staticfiles/","canonical":"https://djangodocs.dev/id/5.2/ref/contrib/staticfiles/","summary":"django.contrib.staticfiles menyimpan berkas-berkas tetap dari setiap dari aplikasi anda (dan setiap tempat lain anda tentukan) kedalam tempat tunggal yang dapat…","html":"<span id=\"the-staticfiles-app\"></span><h1>Aplikasi <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code><a class=\"heading-anchor\" href=\"#module-django.contrib.staticfiles\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code> menyimpan berkas-berkas tetap dari setiap dari aplikasi anda (dan setiap tempat lain anda tentukan) kedalam tempat tunggal yang dapat dengan mudah dilayani di produksi.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Lihat juga</p>\n<p>Untuk sebuah perkenalaln pada aplikasi berkas-berkas tetap dan beberapa penggunaan contoh, lihat <a class=\"reference internal\" href=\"/id/5.2/howto/static-files/\"><span class=\"doc\">Bagaimana mengelola berkas statik (misalnya gambar, JavaScript, CSS)</span></a>. Untuk panduan dalam menyebarkan berkas-berkas tetap, lihat <a class=\"reference internal\" href=\"/id/5.2/howto/static-files/deployment/\"><span class=\"doc\">Bagaimana menyebarkan berkas tetap</span></a>.</p>\n</aside>\n<section id=\"settings\">\n<span id=\"staticfiles-settings\"></span><h2>Pengaturan<a class=\"heading-anchor\" href=\"#settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Lihat <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#settings-staticfiles\"><span class=\"std std-ref\">staticfiles settings</span></a> untuk rincian pada pengaturan berikut:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/5.2/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><a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATICFILES_FINDERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_FINDERS</span></code></a></p></li>\n</ul>\n</section>\n<section id=\"management-commands\">\n<h2>Pengelolaan perintah<a class=\"heading-anchor\" href=\"#management-commands\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code> membuka tiga perintah pengelolaan.</p>\n<section id=\"collectstatic\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code><a class=\"heading-anchor\" href=\"#collectstatic\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"std django-admin\">\n<dt class=\"sig sig-object std\" id=\"django-admin-collectstatic\">\n<span class=\"sig-name descname\"><span class=\"pre\">django-admin</span> <span class=\"pre\">collectstatic</span></span><a class=\"heading-anchor\" href=\"#django-admin-collectstatic\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Kumpulkan berkas-berkas tetap kedalam <a class=\"reference internal\" href=\"/id/5.2/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>Gandakan nama-nama berkas secara awalan diselesaikan dalam cara mirip untuk bagaimana ketetapan cetakan bekerja: berkas yaitu pertama ditemukan dalam satu dari tempat yang ditentukan akan digunakan. Jika anda sedang bingung, perintah <a class=\"reference internal\" href=\"#django-admin-findstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">findstatic</span></code></a> dapat membantu anda dimana berkas-berkas ditemukan.</p>\n<p>Pada jalanan <code class=\"docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code> selanjutnya (jika <code class=\"docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code> tidak kosong), berkas disalain hanya jike mereka telah merubah timestamp lebih besar dari timestamp dari berkas dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code>. Oleh karena itu jika anda memindahkan sebuah aplikasi dari <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>, itu adalah ide bagus menggunakan pilihan <a class=\"reference internal\" href=\"#cmdoption-collectstatic-clear\"><code class=\"xref std std-option docutils literal notranslate\"><span class=\"pre\">collectstatic</span> <span class=\"pre\">--clear</span></code></a> untuk memindahkan berkas tetap yang lama.</p>\n<p>Berkas-berkas dicari dengan menggunakan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATICFILES_FINDERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">enabled</span> <span class=\"pre\">finders</span></code></a>. Awalan adalah mencari dalam semua tempat ditentukan dalam <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a> dan dalam direktori <code class=\"docutils literal notranslate\"><span class=\"pre\">'static'</span></code> dari aplikasi ditentukan oleh pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>.</p>\n<p>The <a class=\"reference internal\" href=\"#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> management command calls the\n<a class=\"reference internal\" href=\"#django.contrib.staticfiles.storage.StaticFilesStorage.post_process\" title=\"django.contrib.staticfiles.storage.StaticFilesStorage.post_process\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">post_process()</span></code></a>\nmethod of the <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> storage backend from <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a> after\neach run and passes a list of paths that have been found by the management\ncommand. It also receives all command line options of <a class=\"reference internal\" href=\"#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a>.\nThis is used by the\n<a class=\"reference internal\" href=\"#django.contrib.staticfiles.storage.ManifestStaticFilesStorage\" title=\"django.contrib.staticfiles.storage.ManifestStaticFilesStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code></a> by\ndefault.</p>\n<p>Secara awalan, berkas-berkas terkumpul menerima perizinan dari <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-FILE_UPLOAD_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_PERMISSIONS</span></code></a> dan direktori terkumpul menerima perizinan dari <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-FILE_UPLOAD_DIRECTORY_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_DIRECTORY_PERMISSIONS</span></code></a>. Jika anda ingin perizinan berbeda untuk berkas dan direktori ini, anda dapat mensubkelaskan salah satu dari <a class=\"reference internal\" href=\"#staticfiles-storages\"><span class=\"std std-ref\">static files storage classes</span></a> dan menentukan <code class=\"docutils literal notranslate\"><span class=\"pre\">file_permissions_mode</span></code> dan/atau parameter <code class=\"docutils literal notranslate\"><span class=\"pre\">directory_permissions_mode</span></code>, masing-masing. Sebagai contoh:</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.contrib.staticfiles</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">storage</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyStaticFilesStorage</span><span class=\"p\">(</span><span class=\"n\">storage</span><span class=\"o\">.</span><span class=\"n\">StaticFilesStorage</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;file_permissions_mode&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"mo\">0o640</span>\n        <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;directory_permissions_mode&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"mo\">0o760</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Then set the <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> storage backend in <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a> setting to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'path.to.MyStaticFilesStorage'</span></code>.</p>\n<p>Beberapa pilihan umum digunakan adalah:</p>\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-collectstatic-noinput\">\n<span id=\"cmdoption-collectstatic-no-input\"></span><span class=\"sig-name descname\"><span class=\"pre\">--noinput</span></span><span class=\"sig-prename descclassname\"></span><span class=\"sig-prename descclassname\"><span class=\"pre\">,</span> </span><span class=\"sig-name descname\"><span class=\"pre\">--no-input</span></span><span class=\"sig-prename descclassname\"></span><a class=\"heading-anchor\" href=\"#cmdoption-collectstatic-noinput\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>JANGAN mengarahkan pengguna untuk masukan apapun.</p>\n</dd></dl>\n\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-collectstatic-ignore\">\n<span id=\"cmdoption-collectstatic-i\"></span><span class=\"sig-name descname\"><span class=\"pre\">--ignore</span></span><span class=\"sig-prename descclassname\"> <span class=\"pre\">PATTERN</span></span><span class=\"sig-prename descclassname\"><span class=\"pre\">,</span> </span><span class=\"sig-name descname\"><span class=\"pre\">-i</span></span><span class=\"sig-prename descclassname\"> <span class=\"pre\">PATTERN</span></span><a class=\"heading-anchor\" href=\"#cmdoption-collectstatic-ignore\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengabaikan berkas-berkas, direktori, atau jalur cocok pola gaya-global ini. Gunakan beberapa kali untuk mengabaikan lebih. Ketika menentukan sebuah jalur, selalu gunakan garis miring ke depan, bahkan pada Windows.</p>\n</dd></dl>\n\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-collectstatic-dry-run\">\n<span id=\"cmdoption-collectstatic-n\"></span><span class=\"sig-name descname\"><span class=\"pre\">--dry-run</span></span><span class=\"sig-prename descclassname\"></span><span class=\"sig-prename descclassname\"><span class=\"pre\">,</span> </span><span class=\"sig-name descname\"><span class=\"pre\">-n</span></span><span class=\"sig-prename descclassname\"></span><a class=\"heading-anchor\" href=\"#cmdoption-collectstatic-dry-run\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Lakukan apapun kecuali merubah sistem berkas.</p>\n</dd></dl>\n\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-collectstatic-clear\">\n<span id=\"cmdoption-collectstatic-c\"></span><span class=\"sig-name descname\"><span class=\"pre\">--clear</span></span><span class=\"sig-prename descclassname\"></span><span class=\"sig-prename descclassname\"><span class=\"pre\">,</span> </span><span class=\"sig-name descname\"><span class=\"pre\">-c</span></span><span class=\"sig-prename descclassname\"></span><a class=\"heading-anchor\" href=\"#cmdoption-collectstatic-clear\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bersihkan berkas-berkas yang ada sebelum mencoba menyalin atau menaut berkas asli.</p>\n</dd></dl>\n\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-collectstatic-link\">\n<span id=\"cmdoption-collectstatic-l\"></span><span class=\"sig-name descname\"><span class=\"pre\">--link</span></span><span class=\"sig-prename descclassname\"></span><span class=\"sig-prename descclassname\"><span class=\"pre\">,</span> </span><span class=\"sig-name descname\"><span class=\"pre\">-l</span></span><span class=\"sig-prename descclassname\"></span><a class=\"heading-anchor\" href=\"#cmdoption-collectstatic-link\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Buat sebuah tautan simbolus pada setiap berkas daripada menyalin.</p>\n</dd></dl>\n\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-collectstatic-no-post-process\">\n<span class=\"sig-name descname\"><span class=\"pre\">--no-post-process</span></span><span class=\"sig-prename descclassname\"></span><a class=\"heading-anchor\" href=\"#cmdoption-collectstatic-no-post-process\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Don't call the\n<a class=\"reference internal\" href=\"#django.contrib.staticfiles.storage.StaticFilesStorage.post_process\" title=\"django.contrib.staticfiles.storage.StaticFilesStorage.post_process\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">post_process()</span></code></a>\nmethod of the configured <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> storage backend from\n<a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-collectstatic-no-default-ignore\">\n<span class=\"sig-name descname\"><span class=\"pre\">--no-default-ignore</span></span><span class=\"sig-prename descclassname\"></span><a class=\"heading-anchor\" href=\"#cmdoption-collectstatic-no-default-ignore\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jangan abaikan pola-gaya-blobal pribadi umum <code class=\"docutils literal notranslate\"><span class=\"pre\">'CVS'</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">'.*'</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">'*~'</span></code>.</p>\n</dd></dl>\n\n<p>Untuk daftar penuh dari pilihan, mengacu pada bantuan perintah sendiri dengan menjalankan:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-0-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>collectstatic<span class=\"w\"> </span>--help\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-0-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py manage.py collectstatic --help\n</code></pre></div></div></div>\n<section id=\"customizing-the-ignored-pattern-list\">\n<span id=\"customize-staticfiles-ignore-patterns\"></span><h4>Menyesuaikan daftar pola diabaikan<a class=\"heading-anchor\" href=\"#customizing-the-ignored-pattern-list\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>The default ignored pattern list, <code class=\"docutils literal notranslate\"><span class=\"pre\">['CVS',</span> <span class=\"pre\">'.*',</span> <span class=\"pre\">'*~']</span></code>, can be customized in\na more persistent way than providing the <code class=\"docutils literal notranslate\"><span class=\"pre\">--ignore</span></code> command option at each\n<code class=\"docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code> invocation. Provide a custom <a class=\"reference internal\" href=\"/id/5.2/ref/applications/#django.apps.AppConfig\" title=\"django.apps.AppConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code></a>\nclass, override the <code class=\"docutils literal notranslate\"><span class=\"pre\">ignore_patterns</span></code> attribute of this class and replace\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.staticfiles'</span></code> with that class path in your\n<a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> setting:</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.contrib.staticfiles.apps</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">StaticFilesConfig</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyStaticFilesConfig</span><span class=\"p\">(</span><span class=\"n\">StaticFilesConfig</span><span class=\"p\">):</span>\n    <span class=\"n\">ignore_patterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"o\">...</span><span class=\"p\">]</span>  <span class=\"c1\"># your custom ignore list</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"findstatic\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">findstatic</span></code><a class=\"heading-anchor\" href=\"#findstatic\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"std django-admin\">\n<dt class=\"sig sig-object std\" id=\"django-admin-findstatic\">\n<span class=\"sig-name descname\"><span class=\"pre\">django-admin</span> <span class=\"pre\">findstatic</span> <span class=\"pre\">staticfile</span> <span class=\"pre\">[staticfile</span> <span class=\"pre\">...]</span></span><a class=\"heading-anchor\" href=\"#django-admin-findstatic\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Mencari untuk satu atau lebih jalur relatif dengan diadakan penemu.</p>\n<p>Sebagai contoh:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-1-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>findstatic<span class=\"w\"> </span>css/base.css<span class=\"w\"> </span>admin/js/core.js\n<span class=\"go\">Found &#39;css/base.css&#39; here:</span>\n<span class=\"go\">  /home/special.polls.com/core/static/css/base.css</span>\n<span class=\"go\">  /home/polls.com/core/static/css/base.css</span>\n<span class=\"go\">Found &#39;admin/js/core.js&#39; here:</span>\n<span class=\"go\">  /home/polls.com/src/django/contrib/admin/media/js/core.js</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-1-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py manage.py findstatic css\\base.css admin\\js\\core.js\n<span class=\"go\">Found &#39;css/base.css&#39; here:</span>\n<span class=\"go\">  /home/special.polls.com/core/static/css/base.css</span>\n<span class=\"go\">  /home/polls.com/core/static/css/base.css</span>\n<span class=\"go\">Found &#39;admin/js/core.js&#39; here:</span>\n<span class=\"go\">  /home/polls.com/src/django/contrib/admin/media/js/core.js</span>\n</code></pre></div></div></div>\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-findstatic-arg-findstatic\">\n<span class=\"sig-name descname\"><span class=\"pre\">findstatic</span></span><span class=\"sig-prename descclassname\"> <span class=\"pre\">--first</span></span><a class=\"heading-anchor\" href=\"#cmdoption-findstatic-arg-findstatic\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Secara awalan, semua tempat cocok ditemukan. Kembalian satu-satunya pertama yang cocok untuk setiap jalur relatif, gunakan pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">--first</span></code>:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-2-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>findstatic<span class=\"w\"> </span>css/base.css<span class=\"w\"> </span>--first\n<span class=\"go\">Found &#39;css/base.css&#39; here:</span>\n<span class=\"go\">  /home/special.polls.com/core/static/css/base.css</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-2-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py manage.py findstatic css\\base.css --first\n<span class=\"go\">Found &#39;css/base.css&#39; here:</span>\n<span class=\"go\">  /home/special.polls.com/core/static/css/base.css</span>\n</code></pre></div></div></div>\n<p>Ini adalah pertolongan mencari kesalahan; itu akan menunjukkan anda tepatnya berkas tetap mana akan dikumpulkan untuk jalur yang diberikan.</p>\n<p>Dengan mensetel bendera <code class=\"docutils literal notranslate\"><span class=\"pre\">--verbosity</span></code> menjadi 0, anda dapat menekan keluaran tambahan dan hanya mendapatkan jalur nama:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-3-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>findstatic<span class=\"w\"> </span>css/base.css<span class=\"w\"> </span>--verbosity<span class=\"w\"> </span><span class=\"m\">0</span>\n<span class=\"go\">/home/special.polls.com/core/static/css/base.css</span>\n<span class=\"go\">/home/polls.com/core/static/css/base.css</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-3-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py manage.py findstatic css\\base.css --verbosity 0\n<span class=\"go\">/home/special.polls.com/core/static/css/base.css</span>\n<span class=\"go\">/home/polls.com/core/static/css/base.css</span>\n</code></pre></div></div></div>\n<p>Disisi lain, dengan mengatur bendera <code class=\"docutils literal notranslate\"><span class=\"pre\">--verbosity</span></code> menjadi 2, anda dapat mendapatkan semua direktori yang dicari:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-4-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>findstatic<span class=\"w\"> </span>css/base.css<span class=\"w\"> </span>--verbosity<span class=\"w\"> </span><span class=\"m\">2</span>\n<span class=\"go\">Found &#39;css/base.css&#39; here:</span>\n<span class=\"go\">  /home/special.polls.com/core/static/css/base.css</span>\n<span class=\"go\">  /home/polls.com/core/static/css/base.css</span>\n<span class=\"go\">Looking in the following locations:</span>\n<span class=\"go\">  /home/special.polls.com/core/static</span>\n<span class=\"go\">  /home/polls.com/core/static</span>\n<span class=\"go\">  /some/other/path/static</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-4-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py manage.py findstatic css\\base.css --verbosity 2\n<span class=\"go\">Found &#39;css/base.css&#39; here:</span>\n<span class=\"go\">  /home/special.polls.com/core/static/css/base.css</span>\n<span class=\"go\">  /home/polls.com/core/static/css/base.css</span>\n<span class=\"go\">Looking in the following locations:</span>\n<span class=\"go\">  /home/special.polls.com/core/static</span>\n<span class=\"go\">  /home/polls.com/core/static</span>\n<span class=\"go\">  /some/other/path/static</span>\n</code></pre></div></div></div>\n</section>\n<section id=\"runserver\">\n<span id=\"staticfiles-runserver\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">runserver</span></code><a class=\"heading-anchor\" href=\"#runserver\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"std django-admin\">\n<dt class=\"sig sig-object std\">\n<span class=\"sig-name descname\"><span class=\"pre\">django-admin</span> <span class=\"pre\">runserver</span> <span class=\"pre\">[addrport]</span></span></dt>\n<dd></dd></dl>\n\n<p>Timpa perintah inti <a class=\"reference internal\" href=\"/id/5.2/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a> jika aplikasi <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">installed</span></code></a> dan tambah penyajian otomatis dari berkas-berkas statis. Penyajian berkas tidak berjalan melalui <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a>.</p>\n<p>Perintah menambah pilihan-pilihan ini:</p>\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-runserver-nostatic\">\n<span class=\"sig-name descname\"><span class=\"pre\">--nostatic</span></span><span class=\"sig-prename descclassname\"></span><a class=\"heading-anchor\" href=\"#cmdoption-runserver-nostatic\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Gunakan pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">--nostatic</span></code> untuk meniadakan penyajian berkas-berkas statis dengan aplikasi <a class=\"reference internal\" href=\"/id/5.2/ref/contrib/staticfiles/\"><span class=\"doc\">staticfiles</span></a> seluruhnya. Pilihan ini hanya tersedia jika aplikasi <a class=\"reference internal\" href=\"/id/5.2/ref/contrib/staticfiles/\"><span class=\"doc\">staticfiles</span></a> dalam pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> proyek anda.</p>\n<p>Contoh penggunaan:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-5-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"gp\">$ </span>django-admin<span class=\"w\"> </span>runserver<span class=\"w\"> </span>--nostatic\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-5-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> django-admin runserver --nostatic\n</code></pre></div></div></div>\n<dl class=\"django-admin-option\">\n<dt class=\"sig sig-object\" id=\"cmdoption-runserver-insecure\">\n<span class=\"sig-name descname\"><span class=\"pre\">--insecure</span></span><span class=\"sig-prename descclassname\"></span><a class=\"heading-anchor\" href=\"#cmdoption-runserver-insecure\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Gunakan pilihan <code class=\"docutils literal notranslate\"><span class=\"pre\">--insecure</span></code> untuk memaksa melayani berkas-berkas statis dengan aplikasi <a class=\"reference internal\" href=\"/id/5.2/ref/contrib/staticfiles/\"><span class=\"doc\">staticfiles</span></a> bahkan jika pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Dengan menggunakan ini anda mengetahui kenyataan bahwa itu adalah <strong>terlalu tidak efesien</strong> dan mungkin <strong>tidak nyaman</strong>. Ini hanya bertujuan untuk pengembangan lokal, harus <strong>jangan pernah digunakan dalam produksi</strong> dan hanya tersedia jika aplikasi <a class=\"reference internal\" href=\"/id/5.2/ref/contrib/staticfiles/\"><span class=\"doc\">staticfiles</span></a> berada dalam pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> proyek anda.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">--insecure</span></code> tidak dapat bekerja dengan <a class=\"reference internal\" href=\"#django.contrib.staticfiles.storage.ManifestStaticFilesStorage\" title=\"django.contrib.staticfiles.storage.ManifestStaticFilesStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code></a>.</p>\n<p>Contoh penggunaan:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-6-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"gp\">$ </span>django-admin<span class=\"w\"> </span>runserver<span class=\"w\"> </span>--insecure\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-6-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> django-admin runserver --insecure\n</code></pre></div></div></div>\n</section>\n</section>\n<section id=\"storages\">\n<span id=\"staticfiles-storages\"></span><h2>Penyimpanan<a class=\"heading-anchor\" href=\"#storages\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"staticfilesstorage\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">StaticFilesStorage</span></code><a class=\"heading-anchor\" href=\"#staticfilesstorage\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.storage.StaticFilesStorage\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">storage.</span></span><span class=\"sig-name descname\"><span class=\"pre\">StaticFilesStorage</span></span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.storage.StaticFilesStorage\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sebuah subkelas dari backend penyimpanan <a class=\"reference internal\" href=\"/id/5.2/ref/files/storage/#django.core.files.storage.FileSystemStorage\" title=\"django.core.files.storage.FileSystemStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FileSystemStorage</span></code></a> yang menggunakan pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> sebagai berkas dasar tempat sistem dan pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> masing-masing sebagai dasar URL.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.storage.StaticFilesStorage.post_process\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">storage.StaticFilesStorage.</span></span><span class=\"sig-name descname\"><span class=\"pre\">post_process</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">paths</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.storage.StaticFilesStorage.post_process\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Jika metode ini ditentukan pada penyimpanan, itu dipanggil oleh perintah pengelolaan <a class=\"reference internal\" href=\"#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> setelah tiap larian dan meloloskan penyimpanan lokal dan jalur dari berkas-berkas ditemukan sebagai sebuah dictionary, sama halnya pilihan baris perintah. Itu menghasilkan tuple-tuple dari tiga nilai: <code class=\"docutils literal notranslate\"><span class=\"pre\">original_path,</span> <span class=\"pre\">processed_path,</span> <span class=\"pre\">processed</span></code>. Nilai jalur adalah string dan <code class=\"docutils literal notranslate\"><span class=\"pre\">processed</span></code> adalah boolean mengunjukkan apakah atau tidak nilai setelah-diolah, atau sebuah pengecualian jika setelah-diolah gagal.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.staticfiles.storage.ManifestStaticFilesStorage\" title=\"django.contrib.staticfiles.storage.ManifestStaticFilesStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code></a> menggunakan dibelakang layar ini untuk mengganti jalur dengan pasangan campuran mereka dan memperbaharui cache secara tepat.</p>\n</section>\n<section id=\"manifeststaticfilesstorage\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code><a class=\"heading-anchor\" href=\"#manifeststaticfilesstorage\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.storage.ManifestStaticFilesStorage\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">storage.</span></span><span class=\"sig-name descname\"><span class=\"pre\">ManifestStaticFilesStorage</span></span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.storage.ManifestStaticFilesStorage\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sebuah subkelas dari backend penyimpanan <a class=\"reference internal\" href=\"#django.contrib.staticfiles.storage.StaticFilesStorage\" title=\"django.contrib.staticfiles.storage.StaticFilesStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StaticFilesStorage</span></code></a> yang menyimpan nama berkas itu tangani dengan menambahkan campuran MD5 dari isi berkas ke nama berkas. Sebagai contoh, berkas <code class=\"docutils literal notranslate\"><span class=\"pre\">css/styles.css</span></code> akan juga disimpan sebagai <code class=\"docutils literal notranslate\"><span class=\"pre\">css/styles.55e7cbb9ba48.css</span></code>.</p>\n<p>Tujuan dari penyimpanan ini adalah tetap melayani berkas-berkas bilamana beberapa halaman masih mengacu ke berkas-berkas tersebut, misalnya karena mereka di cache oleh anda atau peladen proxy pihak ke 3. Sebagai tambahan, itu sangat membantu jika anda ingin memberlakukan <a class=\"reference external\" href=\"https://developer.yahoo.com/performance/rules.html#expires\">far future Expires headers</a> pada berkas pengembangan untuk mempercepat waktu muat untuk kunjungan halaman selanjutnya.</p>\n<p>The storage backend automatically replaces the paths found in the saved\nfiles matching other saved files with the path of the cached copy (using\nthe <a class=\"reference internal\" href=\"#django.contrib.staticfiles.storage.StaticFilesStorage.post_process\" title=\"django.contrib.staticfiles.storage.StaticFilesStorage.post_process\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">post_process()</span></code></a>\nmethod). The regular expressions used to find those paths\n(<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.storage.HashedFilesMixin.patterns</span></code>) cover:</p>\n<ul class=\"simple\">\n<li><p>The <a class=\"reference external\" href=\"https://www.w3.org/TR/CSS2/cascade.html#at-import\">&#64;import</a> rule and <a class=\"reference external\" href=\"https://www.w3.org/TR/CSS2/syndata.html#uri\">url()</a> statement of <a class=\"reference external\" href=\"https://www.w3.org/Style/CSS/\">Cascading Style Sheets</a>.</p></li>\n<li><p><a class=\"reference external\" href=\"https://firefox-source-docs.mozilla.org/devtools-user/debugger/how_to/use_a_source_map/\">Source map</a> comments in CSS and JavaScript files.</p></li>\n</ul>\n<p>Subclass <code class=\"docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code> and set the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">support_js_module_import_aggregation</span></code> attribute to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, if you want to\nuse the experimental regular expressions to cover:</p>\n<ul class=\"simple\">\n<li><p>The <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules#importing_features_into_your_script\">modules import</a> in JavaScript.</p></li>\n<li><p>The <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules#aggregating_modules\">modules aggregation</a> in JavaScript.</p></li>\n</ul>\n<p>For example, the <code class=\"docutils literal notranslate\"><span class=\"pre\">'css/styles.css'</span></code> file with this content:</p>\n<div class=\"code-block\" data-language=\"css\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Css</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=\"Css code\"><code><span class=\"p\">@</span><span class=\"k\">import</span><span class=\"w\"> </span><span class=\"nt\">url</span><span class=\"o\">(</span><span class=\"s2\">&quot;../admin/css/base.css&quot;</span><span class=\"o\">)</span><span class=\"p\">;</span>\n</code></pre></div>\n<p>...would be replaced by calling the\n<a class=\"reference internal\" href=\"/id/5.2/ref/files/storage/#django.core.files.storage.Storage.url\" title=\"django.core.files.storage.Storage.url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">url()</span></code></a> method of the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code> storage backend, ultimately saving a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'css/styles.55e7cbb9ba48.css'</span></code> file with the following content:</p>\n<div class=\"code-block\" data-language=\"css\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Css</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=\"Css code\"><code><span class=\"p\">@</span><span class=\"k\">import</span><span class=\"w\"> </span><span class=\"nt\">url</span><span class=\"o\">(</span><span class=\"s2\">&quot;../admin/css/base.27e20196a850.css&quot;</span><span class=\"o\">)</span><span class=\"p\">;</span>\n</code></pre></div>\n<aside class=\"admonition-usage-of-the-integrity-html-attribute-with-local-files admonition\">\n<p class=\"admonition-title\">Usage of the <code class=\"docutils literal notranslate\"><span class=\"pre\">integrity</span></code> HTML attribute with local files</p>\n<p>When using the optional <code class=\"docutils literal notranslate\"><span class=\"pre\">integrity</span></code> attribute within tags like\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;script&gt;</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;link&gt;</span></code>, its value should be calculated based on the\nfiles as they are served, not as stored in the filesystem. This is\nparticularly important because depending on how static files are collected,\ntheir checksum may have changed (for example when using\n<a class=\"reference internal\" href=\"#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a>). At the moment, there is no out-of-the-box\ntooling available for this.</p>\n</aside>\n<p>You can change the location of the manifest file by using a custom\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code> subclass that sets the <code class=\"docutils literal notranslate\"><span class=\"pre\">manifest_storage</span></code>\nargument. For example:</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.contrib.staticfiles.storage</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"p\">(</span>\n    <span class=\"n\">ManifestStaticFilesStorage</span><span class=\"p\">,</span>\n    <span class=\"n\">StaticFilesStorage</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyManifestStaticFilesStorage</span><span class=\"p\">(</span><span class=\"n\">ManifestStaticFilesStorage</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">manifest_storage</span> <span class=\"o\">=</span> <span class=\"n\">StaticFilesStorage</span><span class=\"p\">(</span><span class=\"n\">location</span><span class=\"o\">=</span><span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">BASE_DIR</span><span class=\"p\">)</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"n\">manifest_storage</span><span class=\"o\">=</span><span class=\"n\">manifest_storage</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition-references-in-comments admonition\">\n<p class=\"admonition-title\">References in comments</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code> doesn't ignore paths in statements that are\ncommented out. This <a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/21080\">may crash on the nonexistent paths</a>.\nYou should check and eventually strip comments.</p>\n</aside>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.storage.ManifestStaticFilesStorage.manifest_hash\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">storage.ManifestStaticFilesStorage.</span></span><span class=\"sig-name descname\"><span class=\"pre\">manifest_hash</span></span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.storage.ManifestStaticFilesStorage.manifest_hash\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>This attribute provides a single hash that changes whenever a file in the\nmanifest changes. This can be useful to communicate to SPAs that the assets on\nthe server have changed (due to a new deployment).</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.storage.ManifestStaticFilesStorage.max_post_process_passes\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">storage.ManifestStaticFilesStorage.</span></span><span class=\"sig-name descname\"><span class=\"pre\">max_post_process_passes</span></span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.storage.ManifestStaticFilesStorage.max_post_process_passes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sejak berkas-berkas tetap mungkin mengacu berkas-berkas tetap lainnya yang butuh jalur mereka diganti, banyak pelewatan dari mengganti jalur mungkin dibutuhkan sampai campuran berkas bertemu di satu tempat. Untuk mencegah dari putaran tak terbatas pada campuran tidak bertemu di satu tempat (sebagai contoh, jika <code class=\"docutils literal notranslate\"><span class=\"pre\">'foo.css'</span></code> mengacu <code class=\"docutils literal notranslate\"><span class=\"pre\">'bar.css'</span></code> yang mengacu <code class=\"docutils literal notranslate\"><span class=\"pre\">'foo.css'</span></code>) ada angka maksimal dari pelewatan sebelum setelah-pengolahan diabaikan. Dalam kasus dengan sejumlah besar acuan, ankga tertinggi dari pelewatan mungkin dibutuhkan. Meningkatkan angka maksimal dari pelewatan dengan mensubkelaskan <code class=\"docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code> dan mengatur atribut``max_post_process_passes``. Itu awalan pada 5.</p>\n<p>Untuk mengadakan <code class=\"docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code> anda harus memastikan persyaratan berikut terpenuhi:</p>\n<ul class=\"simple\">\n<li><p>the <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> storage backend in <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a> setting is set to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'</span></code></p></li>\n<li><p>Pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> disetel ke <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p></li>\n<li><p>Anda telah mengumpulkan semua berkas tetap dengan menggunakan perintah pengelolaan <a class=\"reference internal\" href=\"#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a></p></li>\n</ul>\n<p>Sejak membuat campuran MD5 hash bisa menjadi beban kinerja ke situs jaringan anda selama waktu berjalan, <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> akan otomatis menyimpan pemetaan dengan nama dicampur untuk semua berkas-berkas terolah dalam sebuah panggilan berkas <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles.json</span></code>. Ini terjadi sekali ketika anda menjalankan perintah pengelolaan <a class=\"reference internal\" href=\"#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.storage.ManifestStaticFilesStorage.manifest_strict\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">storage.ManifestStaticFilesStorage.</span></span><span class=\"sig-name descname\"><span class=\"pre\">manifest_strict</span></span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.storage.ManifestStaticFilesStorage.manifest_strict\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Jika sebuah berkas tidak ditemukan dalam wujud <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles.json</span></code> pada waktu berjalan, sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">ValueError</span></code> dimunculkan. Perilaku ini dapat ditiadakan dengan mensubkelaskan <code class=\"docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code> dan mengatur atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">manifest_strict</span></code> menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> -- jalur tidak ada akan tetap tidak berubah.</p>\n<p>Due to the requirement of running <a class=\"reference internal\" href=\"#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a>, this storage\ntypically shouldn't be used when running tests as <code class=\"docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code> isn't run\nas part of the normal test setup. During testing, ensure that <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code>\nstorage backend in the <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a> setting is set to something else\nlike <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.staticfiles.storage.StaticFilesStorage'</span></code> (the default).</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.storage.ManifestStaticFilesStorage.file_hash\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">storage.ManifestStaticFilesStorage.</span></span><span class=\"sig-name descname\"><span class=\"pre\">file_hash</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">content</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.storage.ManifestStaticFilesStorage.file_hash\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Metode yang digunakan ketika membuat nama dicampur dari berkas. Butuh mengembalikan sebuah campuran untuk nama berkas dan isi yang diberikan. Secara awalan itu menghitung campuran MD5 dari potongan isi seperti disebutkan diatas. Merasa bebas untuk menimpa metode ini untuk digunakan algotirma campuran anda sendiri.</p>\n</section>\n<section id=\"manifestfilesmixin\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ManifestFilesMixin</span></code><a class=\"heading-anchor\" href=\"#manifestfilesmixin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.storage.ManifestFilesMixin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">storage.</span></span><span class=\"sig-name descname\"><span class=\"pre\">ManifestFilesMixin</span></span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.storage.ManifestFilesMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Gunakan mixin ini dengan penyimpanan penyesuaian untuk menambahkan campuran MD5 dari isi berkas ke nama berkas seperti <a class=\"reference internal\" href=\"#django.contrib.staticfiles.storage.ManifestStaticFilesStorage\" title=\"django.contrib.staticfiles.storage.ManifestStaticFilesStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManifestStaticFilesStorage</span></code></a> lakukan.</p>\n</section>\n</section>\n<section id=\"finders-module\">\n<h2>penemu Modul<a class=\"heading-anchor\" href=\"#finders-module\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Penemu <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> mempunyai sebuah atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">searched_locations</span></code> dimana daftar dari jalur direktori dimana penemu mencari. Contoh penggunaan:</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.contrib.staticfiles</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">finders</span>\n\n<span class=\"n\">result</span> <span class=\"o\">=</span> <span class=\"n\">finders</span><span class=\"o\">.</span><span class=\"n\">find</span><span class=\"p\">(</span><span class=\"s2\">&quot;css/base.css&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">searched_locations</span> <span class=\"o\">=</span> <span class=\"n\">finders</span><span class=\"o\">.</span><span class=\"n\">searched_locations</span>\n</code></pre></div>\n</section>\n<section id=\"other-helpers\">\n<h2>Pembantu Lain<a class=\"heading-anchor\" href=\"#other-helpers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ada sedikit pembantu lain diluar dari aplikasi <a class=\"reference internal\" href=\"#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\">staticfiles</span></code></a> untuk bekerja dengan berkas-berkas tetap:</p>\n<ul class=\"simple\">\n<li><p>Pengolah konteks yang menambahkan <a class=\"reference internal\" href=\"/id/5.2/ref/templates/api/#django.template.context_processors.static\" title=\"django.template.context_processors.static\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.template.context_processors.static()</span></code></a> <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> pada setiap cetakan konteks dibangun dengan konteks  <a class=\"reference internal\" href=\"/id/5.2/ref/templates/api/#django.template.RequestContext\" title=\"django.template.RequestContext\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RequestContext</span></code></a>.</p></li>\n<li><p>The builtin template tag <a class=\"reference internal\" href=\"/id/5.2/ref/templates/builtins/#std-templatetag-static\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">static</span></code></a> which takes a path and urljoins it\nwith the static prefix <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a>. If\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code> is installed, the tag uses the <code class=\"docutils literal notranslate\"><span class=\"pre\">url()</span></code>\nmethod of the <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> storage backend from <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a>\ninstead.</p></li>\n<li><p>Etiket cetakan siap pakai <a class=\"reference internal\" href=\"/id/5.2/ref/templates/builtins/#std-templatetag-get_static_prefix\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">get_static_prefix</span></code></a> yang mengumpulkan variabel cetakan dengan awalan tetap <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> untuk digunakan sebagai sebuah variabel atau langsung.</p></li>\n<li><p>Etiket cetakan mirip <a class=\"reference internal\" href=\"/id/5.2/ref/templates/builtins/#std-templatetag-get_media_prefix\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">get_media_prefix</span></code></a> yang bekerja seperti <a class=\"reference internal\" href=\"/id/5.2/ref/templates/builtins/#std-templatetag-get_static_prefix\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">get_static_prefix</span></code></a> tetapi menggunakan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a>.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> key in <a class=\"reference internal\" href=\"/id/5.2/ref/files/storage/#django.core.files.storage.storages\" title=\"django.core.files.storage.storages\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">django.core.files.storage.storages</span></code></a>\ncontains a ready-to-use instance of the staticfiles storage backend.</p></li>\n</ul>\n<section id=\"static-file-development-view\">\n<span id=\"staticfiles-development-view\"></span><h3>Tampilan pengembahan berkas tetap<a class=\"heading-anchor\" href=\"#static-file-development-view\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Alat-alat berkas statis kebanyakan dirancang untuk membantu dengan mendapatkan berkas-berkas statis berhasil disebarkan kedalam produksi. Ini biasanya berarti memisahkan, peladen berkas statis berdedikasi, yaitu banyak overhead dikacaukan ketika mengembangkan secara lokal. Dengan demikian, aplikasi <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> dikirim dengan sebuah <strong>tampilan pembantu cepat dan jorok</strong> yang anda dapat gunakan untuk melayani berkas-berkas secara lokal dalam pengembangan.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.views.serve\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">views.</span></span><span class=\"sig-name descname\"><span class=\"pre\">serve</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">path</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.views.serve\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ini menampilkan fungsi melayani berkas-berkas tetap dalam pengembangan.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Tampilan ini hanya bekerja jika <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<p>Itu karena tampilan ini <strong>terlalu tidak efesien</strong> dan mungkin <strong>tidak aman</strong>. Ini hanya bertujuan untuk pengembangan lokal, dan harus <strong>jangan pernah digunakan dalam produksi</strong>.</p>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>To guess the served files' content types, this view relies on the\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/mimetypes.html#module-mimetypes\" title=\"(di Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">mimetypes</span></code></a> module from the Python standard library, which itself\nrelies on the underlying platform's map files. If you find that this view\ndoesn't return proper content types for certain files, it is most likely\nthat the platform's map files are incorrect or need to be updated. This can\nbe achieved, for example, by installing or updating the <code class=\"docutils literal notranslate\"><span class=\"pre\">mailcap</span></code> package\non a Red Hat distribution, <code class=\"docutils literal notranslate\"><span class=\"pre\">mime-support</span></code> on a Debian distribution, or by\nediting the keys under <code class=\"docutils literal notranslate\"><span class=\"pre\">HKEY_CLASSES_ROOT</span></code> in the Windows registry.</p>\n</aside>\n<p>Tampilan ini otomatis diadakan oleh <a class=\"reference internal\" href=\"/id/5.2/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a> (dengan pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>). Untuk menggunakan tampilan dengan peladen pengembangan lokal bereda, tambah potongan berikut ke akhir dari konfigurasi URL utama anda:</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.contrib.staticfiles</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">re_path</span>\n\n<span class=\"k\">if</span> <span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">DEBUG</span><span class=\"p\">:</span>\n    <span class=\"n\">urlpatterns</span> <span class=\"o\">+=</span> <span class=\"p\">[</span>\n        <span class=\"n\">re_path</span><span class=\"p\">(</span><span class=\"sa\">r</span><span class=\"s2\">&quot;^static/(?P&lt;path&gt;.*)$&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">serve</span><span class=\"p\">),</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>catat, awal dari pola (<code class=\"docutils literal notranslate\"><span class=\"pre\">r'^static/'</span></code>) seharusnya pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> anda.</p>\n<p>Sejak ini adalah sedikit rewel, ada juga fungsi pembantu yang akan melakukan ini untuk anda:</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.urls.staticfiles_urlpatterns\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">urls.</span></span><span class=\"sig-name descname\"><span class=\"pre\">staticfiles_urlpatterns</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.urls.staticfiles_urlpatterns\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ini akan mengembalikan pola URL sebenarnya untuk melayani berkas-berkas tetap ke daftar pola anda sudah tetapkan. Gunakan itu seperti ini:</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.contrib.staticfiles.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">staticfiles_urlpatterns</span>\n\n<span class=\"c1\"># ... the rest of your URLconf here ...</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">+=</span> <span class=\"n\">staticfiles_urlpatterns</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Ini akan memeriksa pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> anda dan mengikat tampilan untuk melayani berkas-berkas tetap sesuai. jangan lupa mensetel pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATICFILES_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATICFILES_DIRS</span></code></a> dengan tepat untuk membuat <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code> tahu dimana mencari untuk berkas-berkas tambahan ke berkas-berkas dalam direktori aplikasi.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Fungsi pembantu ini hanya akan bekerja jika <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> dan pengaturan <a class=\"reference internal\" href=\"/id/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> anda tidak juga kosong maupun URL penuh seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">http://static.example.com/</span></code>.</p>\n<p>Itu karena tampilan ini <strong>terlalu tidak efesien</strong> dan mungkin <strong>tidak aman</strong>. Ini hanya bertujuan untuk pengembangan lokal, dan harus <strong>jangan pernah digunakan dalam produksi</strong>.</p>\n</aside>\n</section>\n<section id=\"specialized-test-case-to-support-live-testing\">\n<h3>Kasus percobaan khusus untuk mendukung 'live testing'<a class=\"heading-anchor\" href=\"#specialized-test-case-to-support-live-testing\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.staticfiles.testing.StaticLiveServerTestCase\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">testing.</span></span><span class=\"sig-name descname\"><span class=\"pre\">StaticLiveServerTestCase</span></span><a class=\"heading-anchor\" href=\"#django.contrib.staticfiles.testing.StaticLiveServerTestCase\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Subkelas TestCase unittest ini memperpanjang <a class=\"reference internal\" href=\"/id/5.2/topics/testing/tools/#django.test.LiveServerTestCase\" title=\"django.test.LiveServerTestCase\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.test.LiveServerTestCase</span></code></a>.</p>\n<p>Sama seperti orang tuanya, anda dapat menggunakan itu menulis percobaan yang melibatkan kode dibawah percobaan dan menkonsumsi itu dengan alat-alat percobaan melalui HTTP (misalnya Selenium, PhantomJS, dll.), karena dimana itu dibutuhkan bahwa aset-aset statis juga diterbitkan.</p>\n<p>Tetapi diberikan kenyataan bahwa itu menggunakan dari tampilan <a class=\"reference internal\" href=\"#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> digambarkan diatas, itu dapat secara transparan melapisi pada waktu-penjalanan aset-aset disediakan oleh penemu <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code>. Ini berarti anda tidak perlu menjalankan <a class=\"reference internal\" href=\"#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> sebelum atau sebagai bagian dari pengaturan percobaan anda.</p>\n</section>\n</section>","rootId":"module-django.contrib.staticfiles","toc":[{"title":"Pengaturan","anchor":"settings","children":[]},{"title":"Pengelolaan perintah","anchor":"management-commands","children":[{"title":"collectstatic","anchor":"collectstatic","children":[{"title":"Menyesuaikan daftar pola diabaikan","anchor":"customizing-the-ignored-pattern-list","children":[]}]},{"title":"findstatic","anchor":"findstatic","children":[]},{"title":"runserver","anchor":"runserver","children":[]}]},{"title":"Penyimpanan","anchor":"storages","children":[{"title":"StaticFilesStorage","anchor":"staticfilesstorage","children":[]},{"title":"ManifestStaticFilesStorage","anchor":"manifeststaticfilesstorage","children":[]},{"title":"ManifestFilesMixin","anchor":"manifestfilesmixin","children":[]}]},{"title":"penemu Modul","anchor":"finders-module","children":[]},{"title":"Pembantu Lain","anchor":"other-helpers","children":[{"title":"Tampilan pengembahan berkas tetap","anchor":"static-file-development-view","children":[]},{"title":"Kasus percobaan khusus untuk mendukung 'live testing'","anchor":"specialized-test-case-to-support-live-testing","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/5.2/ref/"},{"docname":"ref/contrib/index","title":"Paket contrib","url":"/id/5.2/ref/contrib/"}],"prev":{"docname":"ref/contrib/sites","title":"Kerangka kerja \"sites\"","url":"/id/5.2/ref/contrib/sites/"},"next":{"docname":"ref/contrib/syndication","title":"Kerangka kerja umpan perkongsian","url":"/id/5.2/ref/contrib/syndication/"},"formats":{"html":"/id/5.2/ref/contrib/staticfiles/","markdown":"/id/5.2/ref/contrib/staticfiles.md","json":"/id/5.2/ref/contrib/staticfiles.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/ref/contrib/staticfiles.txt","official":"https://docs.djangoproject.com/id/5.2/ref/contrib/staticfiles/","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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}