{"title":"Bagaimana menyebarkan berkas tetap","version":"5.1","locale":"id","docname":"howto/static-files/deployment","url":"/id/5.1/howto/static-files/deployment/","canonical":"https://djangodocs.dev/id/5.1/howto/static-files/deployment/","summary":"Lihat juga Untuk perkenalan ke penggunaan django.contrib.staticfiles , lihat Bagaimana mengelola berkas statik (misalnya gambar, JavaScript, CSS) . Melayani berkas…","html":"<h1>Bagaimana menyebarkan berkas tetap<a class=\"heading-anchor\" href=\"#how-to-deploy-static-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Lihat juga</p>\n<p>Untuk perkenalan ke penggunaan <a class=\"reference internal\" href=\"/id/5.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>, lihat <a class=\"reference internal\" href=\"/id/5.1/howto/static-files/\"><span class=\"doc\">Bagaimana mengelola berkas statik (misalnya gambar, JavaScript, CSS)</span></a>.</p>\n</aside>\n<section id=\"serving-static-files-in-production\">\n<span id=\"staticfiles-production\"></span><h2>Melayani berkas statis di produksi<a class=\"heading-anchor\" href=\"#serving-static-files-in-production\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Garis besar dasar dari menaruh berkas-berkas tetap kedalam produksi  terdiri dari dua langkah: jalankan perintah <a class=\"reference internal\" href=\"/id/5.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> ketika berkas tetap berubah, kemudian atur untuk direktori berkas tetap terkumpul (<a class=\"reference internal\" href=\"/id/5.1/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a>) untuk dipindahkan ke peladen berkas tetap dan dilayani. Tergantung pada nama lain <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> <a class=\"reference internal\" href=\"/id/5.1/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a>, berkas mungkin  butuh dipindahkan ke tempat baru secara manual atau metode <a class=\"reference internal\" href=\"/id/5.1/ref/contrib/staticfiles/#django.contrib.staticfiles.storage.StaticFilesStorage.post_process\" title=\"django.contrib.staticfiles.storage.StaticFilesStorage.post_process\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">post_process</span></code></a> dari kelas <code class=\"docutils literal notranslate\"><span class=\"pre\">Storage</span></code> mungkin menangani itu.</p>\n<p>Seperti halnya semua tugas penempatan, inti permasalahan ada pada rinciannya. Setiap pengaturan produksi akan sedikit berbeda, jadi anda akan butuh mengadaptasi garis besar dasar untuk menyesuaikan kebutuhan anda. Dibawah ini adalah sedikit corak umum yang mungkin membantu.</p>\n<section id=\"serving-the-site-and-your-static-files-from-the-same-server\">\n<h3>Melayani situs dan berkas-berkas tetap anda dari peladen sama<a class=\"heading-anchor\" href=\"#serving-the-site-and-your-static-files-from-the-same-server\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Jika anda ingin melayani berkas-berkas tetap anda dari peladen sama yang sudah melayani situs anda, pengolahan mungkin terlihat sesuatu seperti:</p>\n<ul class=\"simple\">\n<li><p>Dorong kode anda ke atas ke peladen penyebaran.</p></li>\n<li><p>Di peladen, jalankan <a class=\"reference internal\" href=\"/id/5.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> untuk menyalin semua berkas statis kedalam <a class=\"reference internal\" href=\"/id/5.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></li>\n<li><p>Konfigurasikan peladen jaringan anda untuk melayani berkas-berkas dalam <a class=\"reference internal\" href=\"/id/5.1/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> dibawah URL <a class=\"reference internal\" href=\"/id/5.1/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a>. Sebagai contoh, ini <a class=\"reference internal\" href=\"/id/5.1/howto/deployment/wsgi/modwsgi/#serving-files\"><span class=\"std std-ref\">how to do this with Apache and mod_wsgi</span></a>.</p></li>\n</ul>\n<p>Anda mungkin akan ingin mengotomatisasi pengolahan ini, khususnya jika anda mendapatkan banyak peladen jaringan.</p>\n</section>\n<section id=\"serving-static-files-from-a-dedicated-server\">\n<h3>Melayani berkas statis dari sebuah server tersendiri<a class=\"heading-anchor\" href=\"#serving-static-files-from-a-dedicated-server\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Kebanyakan situs Django besar menggunakan peladen jaringan terpisah -- yaitu, satu yang tidak juga menjalankan Django -- untuk melayani berkas-berkas tetap. Peladen ini sering berjalan jenis berbeda dari peladen jaringan -- lebih cepat tetapi sedikit fitur-penuh. Beberapa pilihan umum adalah:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference external\" href=\"https://nginx.org/en/\">Nginx</a></p></li>\n<li><p>Versi ringkas dari <a class=\"reference external\" href=\"https://httpd.apache.org/\">Apache</a></p></li>\n</ul>\n<p>Konfigurasi peladen ini diluar cakupan dari dokumen ini; periksa setiap dokumentasi masing-masing peladen untuk perintah.</p>\n<p>Sejak peladen berkas tetap anda tidak akan menjalankan Django, anda akan butuh merubah strategi penyebaran menjadi kelihatan sesuatu seperti:</p>\n<ul class=\"simple\">\n<li><p>Ketika berkas statis anda berubah, jalankan <a class=\"reference internal\" href=\"/id/5.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> secara lokal.</p></li>\n<li><p>Dorong <a class=\"reference internal\" href=\"/id/5.1/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> lokal anda sampai pada peladen berkas tetap kedalam direktori yang sedang dilayani. <a class=\"reference external\" href=\"https://rsync.samba.org/\">rsync</a> adalah sebuah pilihan umum untuk langkah ini sejak dia hanya butuh memindahkan bit ke berkas-berkas tetap yang telah berubah.</p></li>\n</ul>\n</section>\n<section id=\"serving-static-files-from-a-cloud-service-or-cdn\">\n<span id=\"staticfiles-from-cdn\"></span><h3>Melayani berkas statis dari layanan cloud atau CDN<a class=\"heading-anchor\" href=\"#serving-static-files-from-a-cloud-service-or-cdn\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Taktik umum lainnya adalah melayani berkas tetap dari penyedia penyimpanan awan seperti S3 Amazon dan/atau CDN (content delivery network). Ini membuat anda mengabaikan masalah dari melayani berkas tetap dan dapat sering membuat untuk memuat-lebih cepat halaman jaringan (khususnya ketika menggunakan CDN).</p>\n<p>Ketika menggunakan layanan ini, alurkerja dasar akan kelihatan sedikit seperti diatas, kecuali bahwa daripada menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">rsync</span></code> untuk memindahkan berkas-berkas tetap anda ke peladen anda akan butuh untuk memindahkan berkas-berkas tetap ke penyedia panyimpanan atau CDN.</p>\n<p>Terdapat sejumlah jalan anda mungkin lakukan ini, tetapi jika penyedia mempunyai sebuah API, anda dapat menggunakan <a class=\"reference internal\" href=\"/id/5.1/howto/custom-file-storage/\"><span class=\"doc\">custom file storage backend</span></a> untuk menggabungkan CDN dengan proyek Django. Jika anda telah menulis atau menggunakan backend penyimpanan penyesuaian pihak ke3, anda dapat memberitahu <a class=\"reference internal\" href=\"/id/5.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> untuk digunakan dengan mengatur <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> di <a class=\"reference internal\" href=\"/id/5.1/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a>.</p>\n<p>Sebagai contoh, jika anda telah menulis sebuah backend penyimpanan S3 dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">myproject.storage.S3Storage</span></code> anda dapat menggunakannya dengan:</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\">STORAGES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"s2\">&quot;staticfiles&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;BACKEND&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;myproject.storage.S3Storage&quot;</span><span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Sekali semua dilakukan, semua anda harus lakukan adalah menjalankan <a class=\"reference internal\" href=\"/id/5.1/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> dan berkas-berkas tetap anda akan didorong melalui paket penyimpanan sampai ke S3. Jika anda kemudian membutuhkan mengganti ke penyedia penyimpanan berbeda, anda hanya harus merubah <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>staticfiles``di pengaturan <a class=\"reference internal\" href=\"/id/5.1/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a>.</p>\n<p>Untuk rincian pada bagaimana anda menulis satu dari backend ini, lihat <a class=\"reference internal\" href=\"/id/5.1/howto/custom-file-storage/\"><span class=\"doc\">Bagaimana menulis kelas penyimpanan disesuaikan</span></a>. Ada aplikasi pihak 3 tersedia yang menyediakan backend penyimpanan untuk banyak API penyimpanan berkas umum. Titik awal bagus adalah <a class=\"reference external\" href=\"https://djangopackages.org/grids/g/storage-backends/\">overview at djangopackages.org</a>.</p>\n</section>\n</section>\n<section id=\"learn-more\">\n<h2>Pelajari lagi<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>Untuk rincian lengkap pada semua pengaturan, perintah, cetakan etiket, dan potongan-potongan lainnya dalam <a class=\"reference internal\" href=\"/id/5.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>, lihat <a class=\"reference internal\" href=\"/id/5.1/ref/contrib/staticfiles/\"><span class=\"doc\">the staticfiles reference</span></a>.</p>\n</section>","rootId":"how-to-deploy-static-files","toc":[{"title":"Melayani berkas statis di produksi","anchor":"serving-static-files-in-production","children":[{"title":"Melayani situs dan berkas-berkas tetap anda dari peladen sama","anchor":"serving-the-site-and-your-static-files-from-the-same-server","children":[]},{"title":"Melayani berkas statis dari sebuah server tersendiri","anchor":"serving-static-files-from-a-dedicated-server","children":[]},{"title":"Melayani berkas statis dari layanan cloud atau CDN","anchor":"serving-static-files-from-a-cloud-service-or-cdn","children":[]}]},{"title":"Pelajari lagi","anchor":"learn-more","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"Panduan Cara-cara","url":"/id/5.1/howto/"}],"prev":{"docname":"howto/deployment/checklist","title":"Daftar centang penyebaran","url":"/id/5.1/howto/deployment/checklist/"},"next":{"docname":"howto/auth-remote-user","title":"Bagaimana mengotentikasi menggunakan REMOTE_USER","url":"/id/5.1/howto/auth-remote-user/"},"formats":{"html":"/id/5.1/howto/static-files/deployment/","markdown":"/id/5.1/howto/static-files/deployment.md","json":"/id/5.1/howto/static-files/deployment.json"},"source":"https://github.com/django/django/blob/stable/5.1.x/docs/howto/static-files/deployment.txt","official":"https://docs.djangoproject.com/id/5.1/howto/static-files/deployment/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}