Masalah gambar atau sumber daya (resources) yang tidak terproses pada situs Hugo multibahasa sering kali muncul sejak versi v0.123.x 1 2. Hal ini terjadi karena Hugo cenderung membuang sumber daya yang dianggap tidak memiliki “induk” jika folder artikel tersebut tidak tersedia dalam bahasa utama (default content language).
Berikut adalah dua cara efektif untuk memperbaiki masalah tersebut agar gambar Anda kembali muncul.
Solusi 1: Menggunakan Headless Bundle dan Subdirektori #
Cara ini memaksa Hugo untuk mengenali folder konten sebagai bundle yang valid meskipun artikel aslinya hanya ada di bahasa kedua 1.
-
Tambahkan file
index.mddi dalam folder artikel Anda (di luar file artikel bahasa kedua sepertiindex.id.md). Isi file tersebut dengan front matter berikut:--- headless: true --- -
Perbarui konfigurasi Hugo Anda (
hugo.tomlatauconfig.toml) dengan menambahkan baris berikut:defaultContentLanguageInSubdir = truePengaturan ini memastikan bahasa utama juga memiliki subdirektori sendiri dalam struktur URL.
Catatan Penting: Penggunaan solusi ini memiliki konsekuensi pada struktur URL. Semua bahasa, termasuk bahasa pertama, harus memiliki slug bahasa. Misalnya, URL akan menjadi /en/posts/ dan /id/posts/. Jika Anda mencoba mengakses /posts/ tanpa kode bahasa, situs akan mengalami error.
Solusi 2: Menambahkan Kode Bahasa pada Nama File Gambar #
Jika Anda tidak ingin mengubah struktur URL atau pengaturan konfigurasi global, Anda bisa menggunakan pendekatan penamaan file secara spesifik.
Anda cukup mengubah nama file gambar dengan menyertakan kode bahasa di akhir nama file tersebut sebelum ekstensi 2.
- Contoh: Jika artikel Anda berada di bahasa Indonesia (
id), ubah nama file daricover1.jpgmenjadicover1.id.jpg.
Langkah ini membantu Hugo mengasosiasikan gambar tersebut secara langsung dengan konten bahasa yang bersangkutan, sehingga sistem tidak akan membuangnya saat proses build berlangsung.
FAQ #
Mengapa masalah ini baru muncul di versi Hugo terbaru? Mulai versi v0.123.0, Hugo melakukan penyederhanaan logika untuk mempersiapkan sumber data konten lainnya. Akibatnya, sistem tidak lagi otomatis membuat “header bundle” untuk sumber daya yang tidak memiliki file bahasa utama, yang kemudian dianggap sebagai sumber daya yang harus dibuang (discarded).
Apakah saya harus selalu membuat file di bahasa utama? Secara teknis, menciptakan halaman konten untuk bahasa default adalah cara paling aman agar Hugo mengenali bundle tersebut. Namun, dengan solusi penamaan file (Solusi 2), Anda bisa menghindari keharusan membuat file teks tambahan.
Versi Hugo mana yang terdampak masalah ini? Masalah ini secara spesifik dilaporkan pada Hugo v0.123.x dan versi setelahnya.
Kesimpulan #
Masalah gambar hilang di artikel bahasa kedua pada Hugo disebabkan oleh perubahan logika multilingual yang lebih ketat terhadap kepemilikan sumber daya. Anda dapat mengatasinya dengan mengaktifkan defaultContentLanguageInSubdir disertai file headless, atau dengan cara yang lebih sederhana yaitu menambahkan kode bahasa pada nama file gambar (misalnya .id.jpg). Pilih solusi yang paling sesuai dengan kebutuhan struktur URL situs Anda.