Як виправити HTTP 404 на сторінках Github?


166

Ось мій сховище GitHub на gh-pagesгілці. Все виглядає добре, у мене є свої index.html, мої CSS, JS і папки з зображеннями.

Але коли я отримую доступ до http://roine.github.com/p1, я отримую HTTP 404 не знайдено.

Будь-яке пояснення та рішення?


2
Я припускаю, що ви дотримувались документації ? Ви отримали електронний лист? - З 404: "Ми надішлемо вам електронний лист, коли ваша сторінка буде створена. Це може зайняти до десяти хвилин, поки ваша сторінка не стане доступною."
Девід Кейн

Я спробував генеровану сторінку, і вона працювала чудово. Тоді я видаляю гілку gh-pages та відновлюю її за допомогою мого користувальницького HTML. Я чекаю, як мінімум, одну годину зараз
Джонатан де М.

1
будь ласка, спробуйте https. якщо це працює, то через декілька разів це буде дляhttp
Рохіт Сутар

1
трюк https працював на мене по-іншому. У мене все правильно, і на сторінці налаштування сказано, що сайт опубліковано, надано мені правильну URL-адресу. Однак продовжуйте давати 404. Я змінив URL на http, він працював, потім працював і https. Схоже, на веб-сайті http потрібно отримати доступ, щоб "активувати" його спочатку.
dracodoc

2
Для мене вона почала працювати через 10-20 хвилин. На це потрібен час. Тож будьте терплячі.
MechaCode

Відповіді:


182

Я мав лише один фіксатор з усіма своїми файлами. Я натиснув порожню комісію, оновив сторінку і вона спрацювала.

git commit --allow-empty -m "Trigger rebuild"
git push

Якщо це не працює, як @Hendrikto вказував у коментарях, перегляньте сторінку статусу Github і переконайтеся, що сторінки GitHub працюють.


2
Я використовував пакет npm angular-cli-ghpages, і те, що я зробив, було додати простір до мого файлу index.html, повторно виконати команду "npx ngh", яка підштовхнула нову команду для отримання тих же славних результатів. Дякую, це мене змусило, і ваша відповідь надихнула мене на це.
Патрік Грем

якщо ви не хочете використовувати командний рядок, ви можете просто відредагувати README.md direclty з веб-інтерфейсу.
Крістоф Ле Беснерас

2
Також може бути проблема із самим Github. На цій сторінці ви знаєте статус Github. У мене була така ж проблема, і жодне виправлення не працювало. Сторінка статусу зазначала «погіршення продуктивності», і мені просто довелося чекати, коли сервери знову будуть повністю функціональними.
Хендрікто

Хороший момент @Hendrikto, я додав у відповідь посилання на ваш коментар.
Ніцен

77

У моєму випадку у мене були папки, імена яких починалися _(як _cssі _js), які GH Pages ігнорує відповідно до правил обробки Джекілла. Якщо ви не використовуєте Jekyll, вирішенням цього питання є розміщення файлу з ім'ям .nojekyllу кореневому каталозі.


4
.nojekyll є обов'язковим, якщо ви не використовуєте Jekyll, документи тут: github.com/blog/572-bypassing-jekyll-on-github-pages
Claudiu Constantin

2
Спасибі за це, я послав по електронній пошті GitHub і попросив оновити їх керівництво на pages.github.com (який не згадує файл .nojekyll)
шуньяти

1
Дякую! Це було потрібно для додатка Vue, занадто погано він не згадується в посібнику з розгортання vue-cli.
Ondřej Ševčík

це зафіксувало це для мене. Мій сайт користувача спочатку працював без нього, але перестав працювати. Ви можете просто додати файл в Інтернеті і зробити його також там. Я це зробив, оновився і це миттєво спрацювало.
bot19

@Supuhstar дякую брате. ти врятуєш мені життя)
voronovam

73

Я зробив все трюки тут на вилку , щоб виправити сторінку 404 на Github сторінці , але він продовжував 404'ing.

Нарешті встановив, що мій браузер навряд чи зберігає кеш 10 хвилин, перш ніж він з'явиться в Інтернеті.

Просто додайте /index.htmlв кінець URL-адреси, тоді він з’явився і вирішив справу.

https://username.github.io/index.html


1
Це працювало для мене. Я створив сайт, дотримуючись вказівок на головній сторінці сторінок GitHub, так що його якось невтішно, що він не працює.
CGK

1
Дякую! У мене була така ж проблема. Це химерно, що нам потрібно додати /index.html.
Раджа Рао

1
Я зробив м'який кеш ясно, але він не працював, але додавання /index.html працював. Спасибі
Принц Тегатон

1
Працював і для мене, але цього раніше ніколи не траплялося зі мною, в даний час у мене є кілька сторінок, що працюють як на ім'ях користувача.github.io, так і на ім'я користувача.github.io/ < additional - page >, і мені ніколи не потрібно було додавати index.html
Санчіт Батра

Мені довелося відкрити консоль розробника та силу index.html у URL-адресі. Дякую о /
heavyrick

50

Чотири місяці тому я зв’язався із службою підтримки, і вони сказали мені, що це проблема на їхньому боці, вони тимчасово її виправили (для поточних зобов'язань).

Сьогодні я спробував ще раз

  1. Я видалив гілку gh-pages на github

    git push origin --delete gh-pages

  2. Я видалив гілку gh-pages із локальних

    git branch -D gh-pages

  3. Я знову ініціалізував git

    git init

  4. Я відтворив гілку на місцевих

    git branch gh-pages

  5. Я відсунув гілку gh-pages до github

    git push origin gh-pages

Добре працює, я можу нарешті оновити свої файли на сторінці.


31
Мабуть, вам навіть не потрібно видаляти локальну філію. Просто git checkout gh-pages ; git push origin --delete gh-pages ; git push originі все закінчено.
цікаво там,

4
Видалення віддаленої гілки та натискання шахти знову вирішили проблему. Сторінку було видно через хвилину.
Кульбі

Я думаю, це припустимо, що це "осиротіла" гілка
wayofthefuture

Просто довелося видалити початкову гілку ("gh-pages") і повторно все зробив. Працювали для мене!
wle8300

34

Якщо ви ще цього не зробили, виберіть тему Jekyll на вкладці налаштувань GitHub Pages. Мабуть, це потрібно, навіть якщо ви не використовуєте Jekyll для свого сторінки.

Скріншот налаштувань GitHub


8
Я отримував 404 Not Found і спробувавши всі вісімнадцять інших рішень, запропонованих у відповідях тут, я задокументував свої спроби у повторюваному запитанні: Дуже простий HTML, що призводить до 404 Not Found на GitHub Pages . 19-та відповідь Кріса була такою, яка мене виправила. GitHub Pages - чудова послуга, прикро, що документація настільки бідна.
dumbledad

3
Вибору схеми все ще недостатньо, вам також потрібно створити нову комісію у gh-pagesгілці, щоб потім запустити оновлення!
sschuberth

20

У мене був такий самий випуск після того, як розв’язати репо з gh-pagesвідділенням. Мені вдалося виправити, просто натиснувши нову комітку (просто пробіл index.html) на gh-pagesгілку мою вилку .


Я помістив пробіл у "index.html", вчинив і змінив зміни. Нічого не сталося. Вилучено пробіл з імені файлу, знову зроблено та натиснуто зміни, і воно спрацювало! Дякую.
Нахіян

також зауважте, що сторінки github використовують невелике вікно кешування (10 хвилин на момент написання:) Cache-Control:max-age=600. тож вам може знадобитися зачекати в цьому вікні кешу, щоб закінчитися чи примусити оновити веб-переглядач.
Глина

1
Чому возитися з пробілом? Просто натисніть на порожню комітку за допомогою --allow-empty.
Хендрікто

18

У моєму випадку 8 серпня 2017 року

  1. якщо ваша сторінка користувача https://github.com/mgravell , вам потрібно назвати репортаж mgravell.github.io
  2. під коренем створіть файл index.html

  3. під коренем, створити папку docs, створити файл CNAMEпід docs(зверніть увагу: NO розширення, як .txt, переконайтеся, що ваша файлова система показує розширення)

  4. gh-pagesгілка необов'язкова, masterгілка достатня

докладніше : перегляньте офіційні документи тут: https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/


1
Так і було! Додавши порожню папку документів і порожній файл CNAME (без розширення), зробив фокус !!
Хосе А

Тут також відсутнє CNAME :)
Frexuz

Чи повинен файл CNAME бути порожнім? Якщо ні, що має бути в ньому?
dumbledad

@dumbledad порожній файл буде штраф
Timeless

15

Просто зачекайте від десяти хвилин до однієї години. Якщо вона все ще не працює, зверніться до github. Зазвичай це проблема в їх кінці. Але, якщо ви поспішаєте, ви можете спробувати відкрити, додавши "?" знак питання в кінці URL-адреси. Це змушує запит шукати ресурс. Подобається це:

http://roine.github.com/p1?


14

Мої сторінки також зберігали 404'ing. Звернулися до служби підтримки, і вони вказали, що URL-адреса відрізняється від регістру; вирішив моє питання.


2
Я вже намагався як із капіталом, так і без нього, перш ніж звертатися в службу підтримки
Джонатан де М.

3

Якщо ви впевнені, що ваша структура правильна, просто натисніть порожній фіксатор або оновіть файл index.html з деяким простором, він працює!



2

у моєму випадку мені довелося перейти до налаштувань проекту та включити сторінки github. За замовчуванням вимкнено



2

У моєму випадку всі наведені вище пропозиції були правильними. У мене працювало більшість сторінок, за винятком кількох, які поверталися 404, хоча файли розмітки є, і вони здаються правильними. Ось що це зафіксувало для мене на цих сторінках:

  • На одній сторінці було кілька спеціальних символів, які не входять до складу, UTF-8і я думаю, що тому сторінки GitHub не змогли їх відтворити. Оновлення / видалення цих знаків та натискання на новий фікс виправили це.
  • На іншій сторінці я виявив, що 'навколо заголовка є апострофи , я видалив їх, і вміст сторінки почав показуватись добре

2

У мене була така точна проблема з typedocs. README.md працював, але жоден із фактичних документів, створених моїми рядками документа, не відображався, я щойно отримав екран 404 Github Pages.

Щоб виправити це, просто помістіть порожній файл у каталог / docs (або там, де ви генеруєте ваші документи) та зателефонуйте .nojekyll

Для підтвердження, ваша файлова структура повинна виглядати так:

./docs/.nojekyll  # plus all your generated docs

Надішліть це до віддаленого репортажу Github, і ваші посилання тощо повинні працювати зараз.

Також переконайтесь, що ви вибрали в налаштуваннях Github:

Settings -> Github Pages -> Source -> master brach /docs folder

Залежно від вашого документа doc, вам, ймовірно, доведеться відтворювати цей файл щоразу, коли ви оновлюєте документи, це приклад використання typedocs та створення .nojekyll-файлу кожного разу у файлі package.json:

# package.json

      "scripts": {
        "typedoc": "typedoc --out docs src && touch docs/.nojekyll"
      },

1

Я зв'язав свій домен до появи цієї проблеми. Я вчинив і відсунув гілка-сторінки, і це вирішило мою проблему. Нові зобов’язують jekyll відновити ваші сторінки.


1

У моєму випадку URL був досить довгим. Отже, я думаю, є межа. Я помістив його у свій власний субдомен, і він спрацював.


1

Якщо ви бачили, що 404 навіть все виглядає правильно, спробуйте переключитись на https / http.

У початковому запитанні URL-адреса неправильна, зазвичай ви можете перевірити налаштування репо і знайти правильний URL для створеного сайту.

Однак у мене все налаштовано правильно, і на сторінці налаштування сказано, що вона опублікована, тоді я все ще бачив 404.

Дякую за коментар @Rohit Suthar (хоча цей коментар мав використовувати https), я змінив URL на http, і він спрацював, потім також працював https.


1

На приватному репо, коли я вперше додав і відсунув гілку своїх gh-сторінок до github, налаштування сторінок github автоматично змінилися, щоб вказати, що гілка сторінки gh-сторінки буде опублікована, але немає зеленої або синьої смуги з github.io URL-адреса та відсутність спеціальних параметрів домену.

Лише я переключила джерело на головне та швидко переключила джерело на gh-сторінки, щоб воно фактично оновилося зеленою смужкою, що містить опублікований URL.


1
Це допомагає. Спочатку мій проект був приватним, і в такому стані я перетіснив проект на сторінки Github і отримую 404 (офіційних). Після перемикання gh-pagesна master, а потім повернення masterдо gh-pagesвсього все було нормально, і програма починає працювати.
Зрна

1

Ще один варіант цієї помилки:

Я створив свою першу сторінку GitHub після уроку , але дав файл readme.mdа - з моєї точки зору - більш значуще ім'я: welcome.md.

Це була фатальна помилка:

Ми будемо використовувати ваш файл README як індекс сайту, якщо у вас немає index.md(або index.html), не відрізняється від того, коли ви переглядаєте сховище в GitHub.

від публікації на сторінках GitHub, тепер так само просто, як 1, 2, 3

Тоді я зміг отримати доступ до сторінки свого веб-сайту, використовуючи published atпосилання, вказане в розділі Repository/ Settings/ з GitHub Pagesнаступним welcome.htmlабо скороченим welcome.


1

Чомусь розгортання сторінок GitHub перестало працювати сьогодні (2020-травень-05). Раніше у мене не було жодного html, лише md-файли. Я спробував створити index.html, і він опублікував сторінку негайно. Після видалення index.html видання продовжує працювати.


1

У моєму випадку в реакції потрібно було вибрати гілку gh-pages:

введіть тут опис зображення


0

Перейдіть до розділу налаштувань вашого сховища та оберіть головну гілку у розділі Джерело та натисніть кнопку збереження після цього оновіть сторінку, і ви зможете побачити посилання вашої сторінки !.


0

Я також стикався з цією проблемою (404), і першопричиною було те, що мій файл був названий INDEX.md. Я розроблявся в Windows, і мій локальний сайт Jekyll працював (оскільки Windows розглядає регістри імен файлів, нечутливі за замовчуванням). Коли його натиснули на Github, це не спрацювало. Після того, як я перейменував INDEX.mdв index.md, все працювало добре.


0

Ще один сценарій:

  • використовуючи сторінку організації (а не сторінку проекту), яка має сховище <orgname>.github.io
  • вихідні документи як розмітка у masterфілії (asciidoc)
  • Travis CI витягує вихідні doc-файли з masterта висуває генеровані html-файли до gh-pagesгілки

gh-pagesФілія оновлюються з згенерував HTML сторінок. Вкладка GitHub Environmentнадає посилання на сторінку організації. Натискання на нього призводить до появи а 404.

Відповідно до https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/

Сторінки користувачів та організацій, що мають цей тип назви сховища, публікуються лише у masterфілії

Якщо я розумію , це правильно, GitHub Pages не буде опублікований з gh-pagesгалузі , якщо ви створюєте UserабоOrganization сайт , а не Projectсайт.

Я перейменував своє репо, щоб зробити його Projectсайтом, а не Organizationсайтом, і тоді gh-pagesфілія була опублікована, як очікувалося.


0

У мене був такий самий випуск .. Дуже дивний випуск .. Мій HTML був з пробілом після назви

> <title>
> 
> <script>

Виправлено після видалення місця

> <title>
> <script>

0

Також сторінки GitHub наразі не підтримують Git LFS . Таким чином, якщо у вас є зображення (або інші бінарні активи) на сторінках GitHub, виконані за допомогою Git LFS, ви отримаєте 404 не знайдені для цих файлів.

Це буде досить часто для документації, створеної за допомогою Doxygen або подібного інструменту.

Рішення в цьому випадку полягає в тому, щоб просто не фіксувати ці файли за допомогою Git LFS.


0

У моєму випадку моє сховище було приватним. Зробіть сховище загальнодоступним і повторіть всі кроки.


0

Я також стикався з цим питанням, мої сторінки отримували 404. Потім я додав README.md у свій сховище, і 404 більше не було.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.