Как исправить 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
Rohit Suthar
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 работают.

Nycen
источник
2
Я использовал пакет npm angular-cli-ghpages, и я добавил пробел в свой файл index.html, перезапустив команду "npx ngh", которая выдвинула новый коммит для меня, получив те же великолепные результаты. Спасибо, это поставило меня в тупик, и ваш ответ вдохновил меня на это.
Патрик Грэм,
если вы не хотите использовать командную строку, вы можете просто изменить директиву README.md из веб-интерфейса.
Кристоф Ле Беснераис
2
Это также может быть проблемой с самим Github. На этой странице рассказывается о статусе Github. У меня была та же самая проблема, и никакое исправление не работало. Страница состояния показала «снижение производительности», и мне просто пришлось ждать, пока серверы снова не будут полностью работоспособны.
Хендрикто
Хороший вопрос @Hendrikto, я добавил ссылку на ваш комментарий в ответ.
Найсен
77

В моем случае у меня были папки, имена которых начинались с _(например, _cssи _js), которые GH Pages игнорирует согласно правилам обработки Jekyll. Если вы не используете Jekyll, обходной путь - поместить файл с именем .nojekyllв корневой каталог.

Supuhstar
источник
4
.nojekyll является обязательным, если вы не используете Jekyll, документы здесь: github.com/blog/572-bypassing-jekyll-on-github-pages
Клаудиу Константин
2
Спасибо вам за это, я написал Github по электронной почте и попросил их обновить руководство на pages.github.com (в котором не упоминается файл .nojekyll)
sunyata
1
Спасибо! Это было необходимо для приложения Vue, очень плохо, что это не упоминается в руководстве по развертыванию vue-cli.
Ондржей Шевчик
это исправило это для меня. Мой пользовательский сайт изначально работал без него, но перестал работать. Вы можете просто добавить файл онлайн и зафиксировать его там же. Я сделал это, обновился, и это мгновенно сработало.
bot19
@Supuhstar спасибо, брат. ты спас мне жизнь)
вороновам
73

Я сделал все трюки здесь, на My Fork, чтобы исправить страницу 404 на Github Page, но она продолжала работать 404.

Наконец, я обнаружил, что мой браузер вряд ли сохранит 10-минутный кеш, прежде чем он появится в сети

Просто добавьте /index.htmlв конец URL, чтобы он раскрылся и раскрыл дело.

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

Chetabahana
источник
1
Это сработало для меня. Я создал сайт, следуя инструкциям на главной странице GitHub Pages, поэтому его разочаровывает, что он не работает "из коробки".
CGK
1
Спасибо! У меня такая же проблема. Странно, что мы должны добавить /index.html.
Раджа Рао
1
Я сделал мягкий кэш, но он не работал, но добавление /index.html работало. Спасибо
принц Тегатон
1
Я тоже работал, но со мной такого никогда не случалось, у меня есть несколько страниц, работающих как на username.github.io, так и username.github.io/ < additional- page >, и мне никогда не нужно было добавлять index.html
Санчит Батра
Мне пришлось открыть консоль разработчика и заставить index.html в URL. Спасибо o /
Хардрик
51

Четыре месяца назад я связался со службой поддержки, и они сказали, что это проблема с их стороны, они временно ее исправили (для текущего коммита).

Сегодня попробовал еще раз

  1. Я удалил ветку gh-pages на github

    git push origin --delete gh-pages

  2. Я удалил ветку gh-pages на локальном

    git branch -D gh-pages

  3. Я переинициализировал мерзавца

    git init

  4. Я воссоздал ветку на местном

    git branch gh-pages

  5. Я перенес ветку gh-pages в github

    git push origin gh-pages

Работает нормально, я наконец могу обновить свои файлы на странице.

Джонатан де М.
источник
32
Очевидно, вам даже не нужно удалять вашу локальную ветку. Просто git checkout gh-pages ; git push origin --delete gh-pages ; git push originи все готово.
интересно там
4
Удаление удаленной ветки и повторное нажатие решили мою проблему. Страница была видна через минуту.
Кульби
Я думаю, что это будет "
сиротская
Просто пришлось удалить исходную ветку ("gh-pages") и заново все сделать. Работал на меня!
wle8300
34

Если вы этого еще не сделали, выберите тему Jekyll на вкладке настроек GitHub Pages. Очевидно, это необходимо, даже если вы не используете Jekyll для своего сайта Pages.

Скриншот настроек GitHub

Крис
источник
8
Я получал 404 Not Found и попробовал все восемнадцать других решений, предложенных в ответах здесь, я задокументировал свои попытки в двойном вопросе: очень простой HTML, в результате которого 404 Not Found на страницах GitHub . 19-й ответ Криса был тот, который исправил это для меня. GitHub Pages - отличный сервис, обидно, что документация такая плохая.
Дамблдад
3
Простого выбора схемы по-прежнему недостаточно, вам также необходимо создать новый коммит в gh-pagesветке, чтобы впоследствии запустить обновление!
19
20

У меня была такая же проблема после разветвления репо с gh-pagesветкой. Я смог исправить это, просто вставив новый коммит (просто пробел в index.html) в gh-pagesветку моего форка .

глина
источник
Я поместил пробел в index.html, зафиксировал и отправил изменения. Ничего не произошло. Удалил пробелы из имени файла, зафиксировал и снова отправил изменения, и это сработало! Спасибо.
Нахайян
Также обратите внимание, что страницы GitHub используют небольшое окно кэширования (10 минут на момент написания:) Cache-Control:max-age=600. поэтому вам, возможно, придется подождать в этом окне кэша, чтобы истечь, или принудительно обновить ваш браузер.
Глина
1
Зачем связываться с пробелами? Просто нажмите пустой коммит с --allow-empty.
Hendrikto
18

В моем случае 8 августа / 2017

  1. если ваша страница пользователя - https://github.com/mgravell , имя вашего репо должно быть mgravell.github.io
  2. под root создайте файл index.html

  3. под root создайте папку docs, создайте файл CNAMEв docs(примечание: НЕТ расширения, такого как .txt, убедитесь, что ваша файловая система имеет расширение)

  4. gh-pagesответвление необязательно, masterответвление достаточно

больше : проверьте официальные документы здесь: https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/

вневременный
источник
1
Это сделал! Добавление пустой папки с документами и пустого файла CNAME (без расширения), сделало свое дело !!
Хосе
Здесь также отсутствует CNAME :)
Frexuz
Должен ли файл CNAME быть пустым? Если нет, что должно быть в нем?
Дамблдад
@dumbledad пустой файл будет штраф
Timeless
15

Просто подождите около десяти минут до одного часа. Если это все еще не работает, свяжитесь с GitHub. Обычно это проблема в их конце. Но, если вы спешите, вы можете попробовать открыть, добавив "?" вопросительный знак в конце URL. Это заставляет запрос искать ресурс. Как это:

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

Rivalus
источник
14

Мои страницы также продолжали 404'ing. Обратился в службу поддержки, и они указали, что URL-адрес чувствителен к регистру; решил мою проблему.

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

Если вы уверены, что ваша структура правильная, просто нажмите пустую фиксацию или обновите файл index.html с некоторым пробелом, это работает!

Иман Дастбелараки
источник
3

Добавьте следующее в начало файла index.html

<!DOCTYPE html>
Анирбан Мукерджи
источник
2

в моем случае мне нужно было зайти в настройки проекта и включить страницы github. По умолчанию выключено

Жуан Нуньес
источник
2

Сайт стал работать, удалив папку «username.github.io» на моем компьютере, снова выполнив все действия, включая изменение файла index / html.

Моя ошибка ( я думаю ) состоит в том, что я изначально клонировал « https://github.com/username/username.github.io .git » вместо https://github.com/username/username.github.io (нет) .git ")

PhysRex
источник
2

В моем случае все предложения выше были правильными. У меня работало большинство страниц, за исключением немногих, которые возвращали 404, хотя файлы уценки есть, и они казались правильными. Вот что исправило это для меня на этих страницах:

  • На одной странице было несколько специальных символов, которые не являются частью, UTF-8и я думаю, именно поэтому страницы GitHub не смогли их отобразить. Обновление / удаление этих символов и добавление нового коммита исправили это.
  • На другой странице я обнаружил, что 'вокруг заголовка были апострофы , удалил их, и содержимое страницы начало отображаться нормально
Имеет альтайар
источник
2

У меня была именно эта проблема с Typedocs. README.md работал, но не отображались никакие документы, сгенерированные моими строками документов, я только что получил экран 404 страниц Github.

Чтобы это исправить, просто поместите пустой файл в каталог / docs (или там, где вы генерируете свои документы) и назовите его .nojekyll

Чтобы подтвердить, ваша файловая структура должна выглядеть так:

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

Отправьте это на удаленный репозиторий Github, и ваши ссылки и т. Д. Теперь должны работать.

Также убедитесь, что вы выбрали в настройках Github:

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

В зависимости от вашей структуры документов, вам, вероятно, придется заново создавать этот файл каждый раз, когда вы обновляете свои документы, это пример использования typedocs и создания файла .nojekyll каждый раз в файле package.json:

# package.json

      "scripts": {
        "typedoc": "typedoc --out docs src && touch docs/.nojekyll"
      },
Джо Гасевич
источник
1

Я связал свой домен до появления этой проблемы. Я зафиксировал и нажал ветку gh-pages, и это решило мою проблему. Новые коммиты заставляют jekyll перестраивать ваши страницы.

оборота сильной ивы
источник
1

В моем случае URL был довольно длинным. Итак, я думаю, что есть предел. Я положил его на свой собственный поддомен, и он работал.

Ахмад Авайс
источник
1

Если вы видели 404, даже если все выглядит правильно, попробуйте переключить https / http.

Исходный вопрос имеет неправильный URL-адрес, обычно вы можете проверить настройки репо и найти правильный URL-адрес для созданного сайта.

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

Спасибо за комментарий @Rohit Suthar (хотя этот комментарий должен был использовать https), я изменил URL-адрес на http, и это сработало, а затем https сработал.

dracodoc
источник
1

В частном репо, когда я впервые добавил и переместил свою ветку gh-pages в github, настройки страниц github автоматически изменились, чтобы указать, что ветка gh-pages будет опубликована, но там нет зеленой или синей полосы с github.io URL и нет пользовательских параметров домена.

Только когда я переключил источник на master и быстро переключил источник обратно на gh-pages, он фактически обновился зеленой полосой, содержащей опубликованный URL.

chrismarx
источник
1
Это помогает. Сначала мой проект был закрытым, и в этом состоянии я перенес проект на страницы Github и получил 404 (ofc). После переключения с gh-pagesна master, а затем обратно с masterна gh-pagesвсе было нормально и приложение начало работать.
Зрна
1

Еще один вариант этой ошибки:

Я создал свою первую страницу GitHub после урока , но дал файл readme.mdа - с моей точки зрения - более значимое имя: welcome.md.

Это была роковая ошибка:

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

от публикации с GitHub Pages, теперь просто как 1, 2, 3

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

CarpeDiemKopi
источник
1

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

+030
источник
1

В моем случае в реагировать нужно было выбрать ветку gh-pages:

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

Jocker
источник
0

Перейдите в раздел настроек своего репозитория, выберите основную ветку в разделе «Источник» и нажмите кнопку «Сохранить», после этого обновите страницу, и вы сможете увидеть ссылку своей страницы !.

twenk11k
источник
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 страниц. На Environmentвкладке GitHub есть ссылка на страницу организации. Нажатие приводит к 404.

Согласно https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/

Страницы пользователя и организации с таким типом имени хранилища публикуются только из masterветви

Если я правильно понимаю, страницы GitHub не будут опубликованы в 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.

faken
источник
0

В моем случае мой репозиторий был закрытым. Сделайте хранилище общедоступным и повторите все шаги снова.

Сантош Кадам
источник
0

Я также столкнулся с этой проблемой, мои страницы получили 404. И затем я добавил README.md в свой репозиторий, и 404 пропал.

Tri
источник