Mundarija (36)
- Bu darsda
- 1. Nega bu kerak?
- 2. Statik hosting nima
- 3. Deploy'dan oldin: tekshiruv ro'yxati
- 3.1 Yuklanadigan papka
- 4. Netlify Drop: sudrab tashlash bilan deploy
- 4.1 Avval hisob oching
- 4.2 Yuklash
- 4.3 Nomni o'zgartirish
- 4.4 Saytni yangilash
- 4.5 404 sahifa
- 4.6 Bepul tarif cheklovlari
- 4.7 Xavfsizlik sarlavhalari: _headers
- 5. GitHub Pages: brauzer orqali deploy
- 5.1 Repozitoriy yaratish
- 5.2 Fayllarni yuklash
- 5.3 Pages'ni yoqish
- 5.4 Saytni yangilash
- 5.5 Ikki tuzoq
- 6. Qaysi birini tanlash
- 7. O'z domeningiz: qisqa yo'l xaritasi
- 8. Hujumchi nigohi
- 9. Deploy'dan keyin
- 10. Ko'p uchraydigan xatolar
- 10.1 Sahifa o'rniga "Page not found"
- 10.2 Rasmlar ko'rinmaydi, sahifa ochiladi
- 10.3 O'zgarish saytda ko'rinmayapti
- 10.4 Netlify'da sayt parol so'rayapti
- 10.5 Maxfiy fayl yuklab yuborildi
- 11. Mashqlar
- 1-mashq (oson): Netlify Drop
- 2-mashq (o'rta): GitHub Pages
- 3-mashq (qiyin): Loyiha sayti va xavfsizlik tekshiruvi
- 12. Real ishda
- Xulosa
- Manbalar
Saytni internetga chiqarish: Netlify Drop va GitHub Pages'ga birinchi deploy (git'siz)
Qisqacha: Statik HTML saytni internetga chiqarish uchun server sotib olish shart emas. Netlify Drop'da sayt papkasini brauzer oynasiga sudrab tashlaysiz — bir daqiqada
https://...netlify.appmanzili tayyor. GitHub Pages'da fayllarni brauzer orqali repozitoriyga yuklaysiz va sozlamalarda Pages'ni yoqasiz — saythttps://login.github.ioda ochiladi. Ikkalasi ham bepul va HTTPS'ni o'zi beradi.
Bu darsda
- Statik hosting nima ekanini va nega bepul bo'lishini tushuntirasiz.
- Deploy'dan oldingi tekshiruv ro'yxatini bajarasiz.
- Saytni Netlify Drop'ga yuklaysiz, nomini o'zgartirasiz va keyin yangilaysiz.
- Saytni git'siz, brauzer orqali GitHub Pages'ga chiqarasiz.
- Bepul tariflar cheklovlarini va o'z domenini ulash qadamlarini bilasiz.
Oldin bilishingiz kerak: Manzilni yozganda nima bo'ladi: to'liq sayohat, Domen va DNS, Ko'p sahifali sayt tuzilmasi, HTML sahifani audit qilish.
1. Nega bu kerak?
«Bahor» sayti tayyor, tekshirilgan, Lighthouse'dan o'tgan. Lekin u faqat sizning kompyuteringizda yashaydi. http://127.0.0.1:5500 manzilini Jasur akaga yuborsangiz, u hech narsa ko'rmaydi — bu manzil "shu kompyuterning o'zi" degani (IP manzil va port darsi).
Saytni boshqalar ko'rishi uchun uni doim yoniq, internetga ulangan kompyuterga — serverga joylash kerak. Bu jarayon deploy (joylashtirish) deyiladi. Birinchi sahifa darsida va'da bergan edik: HTML qismi oxirida saytni internetga chiqaramiz. Vaqti keldi.
Yaxshi xabar: bugun buning uchun pul ham, server bilimi ham kerak emas. Bir necha daqiqa va brauzer yetadi.
2. Statik hosting nima
To'liq sayohat darsida ikki xil saytni ko'rgan edik:
- Dinamik sayt — server har bir so'rovda sahifani qaytadan yasaydi: bazadan ma'lumot oladi, foydalanuvchini tekshiradi. Buning uchun doim ishlab turgan dastur kerak.
- Statik sayt — tayyor fayllar: HTML, rasmlar, keyinroq CSS va JavaScript. Server faqat faylni topib, o'zgartirmasdan beradi.
Bizning «Bahor» sayti — statik. Uning har bir sahifasi allaqachon tayyor fayl.
Statik hosting — aynan shunday fayllarni saqlab, internetga tarqatadigan xizmat. Fayl berish serverga deyarli hech qanday kuch talab qilmaydi. Shuning uchun kompaniyalar kichik saytlarni bepul joylaydi — ular sizni keyinroq pullik xizmatlariga jalb qilishni kutadi.
O'xshatish: statik sayt — bosmaxonada chop etilgan menyu varag'i. Uni tarqatish uchun faqat nusxa ko'paytirish kerak. Dinamik sayt esa — har mijozga menyuni qo'lda yozib beradigan ofitsiant.
Bu darsda uch mashhur bepul xizmatni ko'ramiz:
| Xizmat | Qanday yuklanadi | Git kerakmi |
|---|---|---|
| Netlify Drop | Papkani sudrab tashlash | Yo'q |
| GitHub Pages | Brauzerda fayl yuklash | Bu darsda yo'q |
| Cloudflare | Papkani sudrab tashlash | Yo'q |
Git — kod versiyalarini boshqaradigan vosita. Uni keyingi qismlarda o'rganamiz. Bugun hamma ish brauzerda.
3. Deploy'dan oldin: tekshiruv ro'yxati
Internetga chiqqan sayt — hammaning ko'z oldida. Xatoni tuzatsa bo'ladi, lekin birinchi taassurotni emas. Shuning uchun yuklashdan oldin besh qadam:
| # | Tekshiruv | Qanday |
|---|---|---|
| 1 | HTML xatolari va uslub | npm run check (Kod uslubi) |
| 2 | Buzilgan havolalar | npx linkinator . --recurse (Sayt tuzilmasi) |
| 3 | Sifat | Lighthouse, Mobile (Audit) |
| 4 | Fayl nomlari | Hammasi kichik harfda, bo'sh joysiz |
| 5 | Ortiqcha fayllar | Qoralama, zaxira va maxfiy fayllar yo'q |
4-qadam alohida e'tiborga loyiq. Windows fayl nomlarida katta-kichik harfni farqlamaydi: Osh.JPG va osh.jpg — bitta fayl. Hosting serverlari esa odatda Linux'da ishlaydi va ularni farqlaydi. HTML'da osh.jpg deb yozib, faylni Osh.JPG deb saqlasangiz — kompyuteringizda rasm ko'rinadi, internetda esa yo'q.
5-qadam haqida 8-bo'limda batafsil gaplashamiz.
3.1 Yuklanadigan papka
Yuklashdan oldin qaysi papkani yuklashingizni aniq biling. Uning ildizida index.html turishi shart:
choyxona/index.html404.htmlmenyu/index.htmlaloqa/index.htmlassets/images/...
Agar loyihada node_modules, package.json va sozlama fayllari ham bo'lsa, ular saytga kerak emas. Eng tozasi — sayt fayllarini alohida papkaga ko'chirib, faqat uni yuklash. Masalan, choyxona/sayt/ papkasiga.
Tekshirib ko'ring: Kompyuteringizda
menyu.htmldagi rasm ko'rinadi, internetda esa yo'q. HTML'da<img src="Assets/osh.jpg" ...>yozilgan, papka nomi —assets. Nima bo'ldi?
Javob
Katta-kichik harf. Windows Assets va assets ni bitta papka deb biladi, shuning uchun kompyuterda rasm ochiladi. Hosting serveri esa ularni farqlaydi va Assets papkasini topa olmaydi — 404. Tuzatish: HTML'da assets/osh.jpg deb yozish. Qoida: fayl va papka nomlari faqat kichik harfda.
4. Netlify Drop: sudrab tashlash bilan deploy
Netlify — statik saytlar uchun mashhur hosting. Uning Drop xizmati eng tez yo'l: papkani brauzerga tashlaysiz, sayt tayyor.
4.1 Avval hisob oching
Netlify Drop'ga hisobsiz ham yuklash mumkin. Lekin bunday sayt vaqtinchalik parol bilan yopiladi va uni tez orada o'z hisobingizga "olib qo'yish" (claim) kerak. Olib qo'yilmagan sayt bir muddatdan keyin o'chiriladi. Shuning uchun avval hisob ochgan qulayroq:
- app.netlify.com saytiga kiring.
- Sign up ni bosing. Ish joyini tayyorlash darsida ochgan GitHub hisobingiz bilan kirish eng oson — GitHub tugmasini tanlang.
- Netlify bir nechta savol beradi (masalan, qanday maqsadda ishlatishingiz). Oddiy javoblarni tanlab o'ting.
Maslahat: Hisobsiz yuklagan bo'lsangiz ham qo'rqmang. Sayt sahifasida uni hisobingizga qo'shish taklifi chiqadi. Kechiktirmasdan, bir soat ichida qiling.
4.2 Yuklash
- Brauzerda app.netlify.com/drop manzilini oching. Sahifada katta ramka va "Drag and drop your project folder here" ("loyiha papkangizni shu yerga sudrab tashlang") degan yozuv bor.
- Explorer'da (macOS'da Finder'da) sayt papkasini toping.
- Papkaning o'zini ramkaga sudrab olib keling va qo'yib yuboring.
Bir necha soniya yuklanadi. Keyin loyiha sahifasi ochiladi va unda manzil turadi:
https://tasodifiy-nom-12345.netlify.appNom tasodifiy bo'ladi — odatda ikkita inglizcha so'z va raqam. Manzilni bosing. «Bahor» sayti internetda! Uni telefoningizda ham oching.
Manzil https bilan boshlanadi. Netlify xavfsiz ulanishni o'zi, bepul sozlaydi (HTTPS va TLS darsi). Hech narsa qilishingiz shart emas.
4.3 Nomni o'zgartirish
tasodifiy-nom-12345 — eslab qolish qiyin. Uni o'zgartiramiz:
- Loyiha sahifasida (Project overview) nom yonidagi sozlamalarni oching. 2026-yil holatida bu Customize → Manage project name and cover image yo'li.
- Yangi nom yozing: masalan,
bahor-ismingiz. Faqat kichik harf, raqam va defis. - Saqlang.
Endi manzil: https://bahor-ismingiz.netlify.app. Nom band bo'lsa, Netlify xabar beradi — boshqasini tanlaysiz.
Diqqat: Xizmatlarning menyu nomlari vaqti-vaqti bilan o'zgaradi. Tugma darsdagidan boshqacha nomlansa, xavotir olmang: "Project configuration" yoki "Site settings" ichida "name" so'zini qidiring. Hujjat o'qish darsidagi qoida — rasmiy hujjatda (docs.netlify.com) doim eng yangi yo'l yozilgan.
4.4 Saytni yangilash
Menyuga yangi taom qo'shdingiz. Saytni qanday yangilaysiz?
- Loyiha sahifasida Deploys bo'limiga o'ting.
- Pastda yana sudrab tashlash ramkasi bor. Yangilangan papkani shu yerga tashlang.
Manzil o'zgarmaydi, ichidagi fayllar yangilanadi. Har bir yuklash ro'yxatda saqlanadi. Yangi versiyada xato chiqsa, eskisini tanlab, Publish deploy bilan qaytarish mumkin.
4.5 404 sahifa
Sayt tuzilmasi darsida 404.html yaratgan edik. Netlify uni o'zi taniydi: mavjud bo'lmagan manzil ochilsa, sizning 404.html ingiz ko'rsatiladi. Tekshirib ko'ring: manzil oxiriga /yoq-sahifa qo'shing.
4.6 Bepul tarif cheklovlari
Netlify 2025-yildan beri "kredit" tizimida ishlaydi. Bepul tarifda oyiga 300 kredit beriladi:
| Nima | Qancha kredit |
|---|---|
| Bitta deploy (yangilash) | 15 |
| 1 GB trafik | 20 |
Hisoblab ko'ramiz: oyiga 10 marta yangilasangiz — 150 kredit. Qolgan 150 kredit — taxminan 7 GB trafik. Kichik sayt uchun bu yetarli. Kredit tugasa, sayt keyingi oy boshigacha to'xtatiladi — pul yechilmaydi.
Amaliy xulosa: har bir vergul uchun alohida yuklamang. O'zgarishlarni yig'ib, kuniga bir marta yuklang.
4.7 Xavfsizlik sarlavhalari: _headers
HTML darajasidagi xavfsizlik darsida «Bahor» uchun _headers faylini yozgan edik: CSP, frame-ancestors va boshqa server sarlavhalari. Uni sayt papkasining ildiziga, index.html yoniga qo'ying. Netlify bu faylni o'zi o'qiydi va har javobga shu sarlavhalarni qo'shadi.
Tekshirish: saytni oching, F12 → Network → sahifaning birinchi so'rovi → Headers → Response Headers. U yerda Content-Security-Policy qatorini ko'rasiz. GitHub Pages esa o'z sarlavhalaringizni qo'yishga ruxsat bermaydi — u yerda _headers ishlamaydi.
Tekshirib ko'ring: Oyiga 300 kredit bor. Saytni oyiga 20 marta yangilasangiz, trafik uchun necha kredit qoladi?
Javob
20 × 15 = 300 kredit — hammasi deploy'larga ketadi, trafik uchun hech narsa qolmaydi. Sayt oy o'rtasida to'xtab qolishi mumkin. Shuning uchun o'zgarishlarni yig'ib, kamroq yuklash kerak.
5. GitHub Pages: brauzer orqali deploy
GitHub Pages — GitHub'ning bepul statik hostingi. Sayt fayllari repozitoriyda (repo) saqlanadi — GitHub'dagi loyiha papkasida. Odatda fayllar u yerga git bilan yuboriladi. Lekin GitHub fayllarni oddiy brauzer orqali yuklashga ham ruxsat beradi. Bugun shu yo'ldan boramiz.
5.1 Repozitoriy yaratish
- github.com'ga kiring. O'ng yuqoridagi + belgisini bosing → New repository.
- Repository name (nomi):
login.github.io.logino'rniga o'z GitHub loginingizni yozasiz. Darsda u qisqa qiliblogindeb belgilanadi. - Public (ochiq) ni tanlang. Bepul tarifda Pages faqat ochiq repozitoriyda ishlaydi.
- Create repository ni bosing.
Nega aynan shu nom? login.github.io nomli repo — sizning shaxsiy saytingiz. U https://login.github.io manzilida ochiladi. Har bir foydalanuvchida shunday bitta repo bo'ladi.
5.2 Fayllarni yuklash
- Yangi repo sahifasida uploading an existing file havolasini bosing. Yoki keyinroq: Add file → Upload files.
- Sayt papkasini oching va uning ichidagi hamma fayl va papkalarni belgilang (
Ctrl + A). - Ularni sahifadagi ramkaga sudrab tashlang.
Diqqat: papkaning o'zini emas, ichidagisini. index.html repo ildizida turishi kerak. Papkani butunligicha tashlasangiz, sayt login.github.io/sayt/ ichida qolib ketadi.
Yuklangach, sahifa pastida Commit changes tugmasi bor. Commit — o'zgarishni tarixga saqlash (git atamasi, Git qismida o'rganamiz). Tepadagi maydonga qisqa izoh yozing: Birinchi versiya. Tugmani bosing.
Brauzer orqali yuklash cheklovlari: bir faylning hajmi — 25 MB gacha, bir martada — 100 tagacha fayl. Kichik sayt uchun bu yetarli. Ko'proq bo'lsa — bir necha marta yuklaysiz.
5.3 Pages'ni yoqish
- Repo sahifasida Settings (sozlamalar) → chap menyuda Pages.
- Build and deployment bo'limida Source — Deploy from a branch.
- Branch —
main, papka —/ (root). Save ni bosing.
Branch — git atamasi, loyihaning bir "tarmog'i". Hozircha shunchaki main ni tanlang, uni keyin Git qismida tushunasiz.
Bir necha daqiqa kuting — GitHub 10 daqiqagacha vaqt olishi mumkin. Keyin shu sahifaning tepasida yozuv chiqadi: "Your site is live at https://login.github.io/" — "saytingiz shu manzilda ishlayapti". Pastroqda Enforce HTTPS katakchasi bor — u belgilangan bo'lsin.
5.4 Saytni yangilash
Faylni o'zgartirdingiz. Repo sahifasida yana Add file → Upload files va o'zgargan faylni tashlaysiz. Nomi bir xil fayl ustidan yoziladi. Commit changes — va bir necha daqiqadan keyin sayt yangilanadi.
Faylni o'chirish uchun uni repoda ochasiz, ... menyusidan Delete file ni tanlaysiz. Ko'p fayl bilan bu noqulay — git bilan bir buyruqda bo'ladi. Shuning uchun GitHub Pages git bilan yanada qulay ishlaydi. Buni GitHub Pages va Actions darsida ko'rasiz.
5.5 Ikki tuzoq
1. Pastki chiziq bilan boshlanadigan fayllar yo'qoladi. GitHub Pages fayllarni Jekyll degan dastur orqali o'tkazadi. Jekyll _ bilan boshlanadigan fayl va papkalarni (masalan, _rasmlar/) saytga qo'shmaydi. Yechim: bunday nom bermang yoki repo ildiziga .nojekyll nomli bo'sh fayl qo'shing. U Jekyll'ni o'chiradi.
2. Loyiha sayti papkada yashaydi. Repo nomi login.github.io emas, masalan choyxona bo'lsa, sayt https://login.github.io/choyxona/ manzilida ochiladi. Sayt tuzilmasi darsida ogohlantirgan edik: bunda / bilan boshlanadigan yo'llar buziladi.
<a href="/menyu/">Menyu</a>Bu havola login.github.io/menyu/ ga olib boradi — choyxona/ papkasini o'tkazib yuboradi. Nisbiy yo'llar (menyu/, ../menyu/) esa ishlayveradi. Shuning uchun sahifalar orasidagi havolalarda nisbiy yo'llarni tanlagan edik.
Favicon va Skriptlarni ulash darslaridagi /favicon.svg, /assets/js/menyu.js kabi yo'llar ham / bilan boshlanadi — loyiha saytida ular ham buziladi. Ikki yo'l bor: ularga ham repo nomini qo'shish (/choyxona/favicon.svg) yoki saytni login.github.io nomli shaxsiy repoga joylash.
404.html da esa / bilan boshlanadigan yo'llar kerak edi. Loyiha saytida ularga repo nomini qo'shasiz:
<a href="/choyxona/">Bosh sahifaga qaytish</a>
<a href="/choyxona/menyu/">Bugungi menyu</a>Tekshirib ko'ring: Loginingiz
login, repo nomiportfolio. Sayt qaysi manzilda ochiladi?404.htmldagi "Bosh sahifa" havolasi qanday yoziladi?
Javob
https://login.github.io/portfolio/. Havola: href="/portfolio/". Oddiy / sayt ildizini emas, login.github.io ning ildizini ko'rsatadi — u yerda esa boshqa repo yoki hech narsa yo'q.
6. Qaysi birini tanlash
| Netlify Drop | GitHub Pages | |
|---|---|---|
| Birinchi deploy | 1 daqiqa | 5–10 daqiqa |
| Yangilash | Papkani qayta tashlash | Faylma-fayl yuklash |
| Manzil | nom.netlify.app |
login.github.io |
| Bepul cheklov | 300 kredit/oy | 1 GB sayt, ~100 GB trafik/oy |
Uchinchi variant — Cloudflare. Uning Pages xizmatida ham papkani sudrab tashlash bor. 2026-yil iyulida esa Netlify Drop'ga o'xshash Cloudflare Drop chiqdi: cloudflare.com/drop manzilida hisobsiz yuklaysiz va bir soat ichida saytni o'zingizga olasiz.
Maslahat: bugun ikkalasini ham sinab ko'ring. Tez sinov uchun — Netlify Drop. Portfolio uchun — GitHub Pages: ish beruvchi GitHub profilingizga kirib, saytingizni ham ko'radi.
7. O'z domeningiz: qisqa yo'l xaritasi
bahor-ismingiz.netlify.app ishlaydi, lekin choyxona uchun chiroyli domen yaxshiroq. Buning uchun uch qadam bor. Bu darsda faqat yo'lni ko'ramiz — amalda domen sotib olganingizda qaytasiz.
1. Domen sotib olish. Domen registratordan yillik to'lov bilan olinadi (Domen va DNS darsi). .uz domenlari O'zbekistondagi akkreditatsiyalangan registratorlarda sotiladi, .com — xalqaro registratorlarda.
2. Hostingga domenni aytish. Netlify'da: Domain management → Add a domain → Add a domain you already own. GitHub Pages'da: repo Settings → Pages → Custom domain maydoni.
3. DNS yozuvlarini qo'shish. Registrator sahifasida DNS yozuvlari yaratiladi. Hosting qaysi yozuv kerakligini o'zi ko'rsatadi. Namuna (example.com o'rnida sizning domeningiz):
| Hosting | Yozuv | Qiymati |
|---|---|---|
| GitHub Pages | A — example.com |
185.199.108.153 (va yana 3 ta) |
| GitHub Pages | CNAME — www |
login.github.io |
| Netlify | A — example.com |
75.2.60.5 |
| Netlify | CNAME — www |
nom.netlify.app |
DNS darsini eslang: ildiz domenga A yozuv, www ga — CNAME. GitHub Pages uchun to'rtta A yozuv kerak: 185.199.108.153, .109.153, .110.153, .111.153. Aniq qiymatlarni har doim hostingning o'z sahifasidan oling — ular o'zgarishi mumkin.
DNS o'zgarishi 24 soatgacha tarqaladi (TTL). Shundan keyin hosting HTTPS sertifikatini o'zi chiqaradi. GitHub Pages'da Enforce HTTPS ni yoqasiz.
Diqqat: Domenni hostingdan uzsangiz, DNS yozuvlarini ham o'chiring. Aks holda domeningiz "egasiz" hostingga qarab qoladi. Hujumchi o'sha hostingda sizning domeningizni o'ziga ulab, unda o'z sahifasini ko'rsatishi mumkin. Bu subdomain takeover deyiladi. GitHub buning oldini olish uchun domenni hisobingizda tasdiqlashni (verify) tavsiya qiladi.
8. Hujumchi nigohi
Deploy — saytni butun dunyoga ochish. Ochiq papkadagi har bir fayl internetdan yuklab olinadi, hatto unga hech qaysi sahifada havola bo'lmasa ham. Hujumchilar saytlarni maxsus dasturlar bilan aylanib chiqadi va shunday manzillarni sinab ko'radi:
https://example.com/.env
https://example.com/zaxira.zip
https://example.com/eski/
https://example.com/mijozlar.xlsxTopilsa — ular o'g'irlanadi. robots.txt da "bu papkaga kirmang" deb yozish yordam bermaydi: u halol qidiruv robotlari uchun iltimos, xolos (SEO amaliyoti darsi). Hujumchi uni aksincha "qayerda qiziq narsa bor" ro'yxati sifatida o'qiydi.
Himoya — faqat bitta: yuklanadigan papkada faqat sayt fayllari bo'lsin.
| Yuklamang | Nega |
|---|---|
.env va parollar yozilgan fayllar |
Kalit va parollar o'g'irlanadi |
node_modules/, zaxira .zip lar |
Keraksiz, ichida nima borligini bilmaysiz |
| Mijozlar ro'yxati, Excel, hisobotlar | Shaxsiy ma'lumot — qonun bilan himoyalangan |
| Qoralama sahifalar | "Havolasiz" degani "yashirin" degani emas |
Yana ikki nozik joy:
- Rasmdagi joylashuv. Telefonda olingan fotoda EXIF ma'lumoti bo'lishi mumkin: qaysi telefon, qachon va GPS koordinatalari (Rasm formatlari darsi). Uyingizda olingan rasmni yuklasangiz, uy manzilingiz ham internetga chiqadi. Rasmlarni Squoosh kabi vositadan o'tkazing — u ortiqcha ma'lumotni tozalaydi.
- Email manzili. Sahifadagi
mailto:havolasini spam-botlar yig'adi. Asosiy shaxsiy pochtangiz o'rniga sayt uchun alohida manzil oching.
«Bahor» saytidagi tekshiruv: sayt/ papkasini oching va har bir faylga savol bering — "buni butun dunyo ko'rsa bo'ladimi?". Javob "yo'q" bo'lsa — fayl papkadan chiqadi.
9. Deploy'dan keyin
Sayt ochildi — bu oxiri emas. Besh daqiqalik tekshiruv:
- Telefonda oching. Mobil internetda, Wi-Fi'siz.
- Hamma sahifani bosib chiqing. Menyu, aloqa, 404.
- Nu HTML Checker'da manzil bilan tekshiring — validator.w3.org/nu, Address usuli (Validatsiya darsi).
- PageSpeed Insights — endi sayt internetda, uni pagespeed.web.dev'da tekshira olasiz (Audit darsi).
- Telegram'da ulashing. Havolani o'zingizga yuboring va chiqadigan kartani ko'ring. Open Graph rasmi uchun endi haqiqiy absolyut manzil bor:
https://bahor-ismingiz.netlify.app/assets/images/og-bahor.jpg(Open Graph darsi).
10. Ko'p uchraydigan xatolar
10.1 Sahifa o'rniga "Page not found"
Netlify'da "Page not found", GitHub Pages'da 404. Eng ko'p sabab — ildizda index.html yo'q. Siz papkani papka ichiga yuklagansiz: sayt/sayt/index.html. Yuklangan fayllar ro'yxatini oching — index.html eng yuqori darajada turishi kerak.
10.2 Rasmlar ko'rinmaydi, sahifa ochiladi
Uch sabab: katta-kichik harf (Osh.JPG), / bilan boshlanadigan yo'l loyiha saytida (5.5-bo'lim) yoki rasm yuklanmay qolgan. Brauzerda F12 → Network panelini oching va qizil 404 qatorlarni toping (DevTools II).
10.3 O'zgarish saytda ko'rinmayapti
Yangiladingiz, lekin sayt eski. Avval Ctrl + Shift + R — kesh (Birinchi sahifa darsi). GitHub Pages'da yana bir necha daqiqa kuting — u darhol yangilanmaydi. Repo sahifasidagi Actions bo'limida deploy jarayoni ko'rinadi: sariq — ketyapti, yashil — tayyor.
10.4 Netlify'da sayt parol so'rayapti
Hisobsiz yuklagan saytingizni o'z hisobingizga olmagansiz. Sayt sahifasidagi taklif bo'yicha hisobingizga qo'shing.
10.5 Maxfiy fayl yuklab yuborildi
Darhol o'chiring va yangi versiyani yuklang. Lekin buni yetarli deb o'ylamang: kimdir allaqachon yuklab olgan bo'lishi mumkin. Faylda parol yoki kalit bo'lsa — ularni ham almashtiring.
11. Mashqlar
1-mashq (oson): Netlify Drop
«Bahor» saytini Netlify Drop'ga yuklang. Nomini o'zingizga moslab o'zgartiring. Manzilni telefonda oching va /yoq-sahifa qo'shib, 404 sahifangiz chiqishini tekshiring.
Yechim
- app.netlify.com'da GitHub bilan hisob oching.
- app.netlify.com/drop — sayt papkasini ramkaga tashlang.
- Customize → Manage project name and cover image — nomni o'zgartiring, masalan
bahor-ismingiz. - Telefonda
https://bahor-ismingiz.netlify.app/yoq-sahifani oching.
Agar Netlify'ning standart "Page not found" sahifasi chiqsa — 404.html papka ildizida emas yoki nomi boshqacha (404.HTML, xato.html). Nomi aynan 404.html bo'lsin va index.html bilan yonma-yon tursin.
2-mashq (o'rta): GitHub Pages
Xuddi shu saytni GitHub Pages'ga login.github.io repozitoriysi orqali chiqaring. Keyin menyu sahifasida bitta narxni o'zgartirib, saytni yangilang.
Ishora: 5-bo'limdagi qadamlar. Faylni yangilash uchun uni shu nom bilan qayta yuklaysiz.
Yechim
- New repository → nomi
login.github.io(o'z loginingiz bilan) → Public → Create repository. - uploading an existing file → papka ichidagi hamma narsani tashlang → Commit changes.
- Settings → Pages → Deploy from a branch →
main,/ (root)→ Save. - 1–10 daqiqadan keyin
https://login.github.ioochiladi. - Yangilash: kompyuterda
menyu/index.htmlni tahrirlang. Repodamenyupapkasiga kiring → Add file → Upload files → faylni tashlang → Commit changes. Bir necha daqiqadan keyinCtrl + Shift + R.
Diqqat: faylni repo ildiziga emas, menyu papkasining ichiga yuklash kerak. Aks holda ildizda ikkinchi index.html paydo bo'lib, bosh sahifani menyu bilan almashtiradi.
3-mashq (qiyin): Loyiha sayti va xavfsizlik tekshiruvi
- Yangi
choyxonanomli repo yarating va saytnihttps://login.github.io/choyxona/manzilida ishga tushiring. - Hamma havolalarni tekshiring.
404.htmlni loyiha sayti uchun to'g'rilang. - Yuklashdan oldin papkada 8-bo'limdagi jadval bo'yicha ortiqcha fayl yo'qligini tekshiring. Topganlaringizni va nima qilganingizni ro'yxat qilib yozing.
Yechim
- Repo
choyxona, Public. Fayllarni yuklash va Pages'ni yoqish — 2-mashqdagidek. Manzil:https://login.github.io/choyxona/. - Sahifalardagi nisbiy havolalar (
menyu/,../aloqa/) o'zgarishsiz ishlaydi.404.htmldagi/bilan boshlanadiganlar esa o'zgaradi:
<a href="/choyxona/">Bosh sahifaga qaytish</a>
<a href="/choyxona/menyu/">Bugungi menyu</a>Tekshiruv: https://login.github.io/choyxona/yoq/sahifa ni oching va ikkala havolani bosing.
- Namuna ro'yxat:
eski-menyu-2025.html— qoralama, havolasi yo'q, lekin ochiladi. O'chirildi.rasmlar-asl.zip— zaxira. Papkadan chiqarildi.osh.jpg— telefonda olingan, EXIF'da GPS bor edi. Squoosh orqali qayta saqlandi.package.json,.htmlvalidate.json,.prettierrc— sayt uchun kerak emas. Faqatsayt/papkasi yuklandi.
12. Real ishda
- Portfolio va demo. Dasturchilar o'z loyihalarini aynan shu xizmatlarda joylaydi. Rezyumedagi "ishlayotgan sayt" havolasi ish beruvchi uchun GitHub'dagi koddan ham ishonarliroq.
- Katta kompaniyalarda ham statik. Hujjat saytlari, landing sahifalar, blog — ko'pincha statik va Netlify, Vercel, Cloudflare yoki GitHub Pages'da turadi. Keyinroq Next.js loyihalarini Vercel va muqobillari darsida joylashtirasiz.
- Avtomatik deploy. Real jamoada hech kim papkani qo'lda sudrab tashlamaydi. Kod GitHub'ga yuborilganda sayt o'zi yangilanadi. Bu yo'lni GitHub Pages va Actions darsidan boshlaysiz.
- Intervyuda so'raladi: "Statik va dinamik sayt farqi?", "Saytni qanday deploy qilasiz?". Bugungi darsdan keyin buni amalda qilgan odam sifatida javob berasiz.
Xulosa
- Deploy — saytni doim ishlaydigan serverga joylash; statik sayt uchun bepul statik hosting yetarli.
- Deploy'dan oldin:
npm run check, buzilgan havolalar, Lighthouse, kichik harfli nomlar, ortiqcha fayllar. - Netlify Drop — papkani sudrab tashlash; yangilash — Deploys'ga qayta tashlash; bepul — 300 kredit/oy.
- GitHub Pages —
login.github.iorepo, Upload files → Commit changes → Settings → Pages; papkadagi loyiha saytida/yo'llariga repo nomi qo'shiladi. - HTTPS ikkalasida ham avtomatik; o'z domeni —
AvaCNAMEyozuvlari bilan. - Ochiq papkadagi har fayl — hamma uchun ochiq:
.env, zaxira, qoralama va EXIF'li rasmlarni yuklamang.
Keyingi dars: Yakuniy loyiha: ko'p sahifali portfolio sayt — HTML qismida o'rganganlarning hammasini bitta loyihada — o'zingizning portfolio saytingizda — jamlaysiz va uni internetga chiqarasiz.
Manbalar
- Netlify Docs: "Netlify Drop quickstart", "Create deploys", "Credit-based pricing plans" — docs.netlify.com
- GitHub Docs: "Creating a GitHub Pages site", "Configuring a publishing source", "GitHub Pages limits", "Managing a custom domain" — docs.github.com/pages
- GitHub Docs: "Adding a file to a repository" — docs.github.com
- Cloudflare Docs: "Direct Upload" va changelog (Cloudflare Drop, 2026-07) — developers.cloudflare.com
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!