gh-страницы со статическим html не могут получить доступ к файлу, когда он существует

#html #github #http-status-code-404 #relative-path #github-pages

#HTML #github #http-status-code-404 #относительный путь #github-страницы

Вопрос:

В index.html домашняя страница отображается нормально, однако любая любая ссылка выдаст 404.

На статическом веб-сайте есть папка с HTML-кодом, индексирующая ссылку на этот HTML-код с правильным путем, но отображает 404.

При переходе по этой ссылке я получил 404.

однако файл присутствует, как вы можете видеть здесь .

Я действительно бьюсь головой о простой html-pb, что расстраивает.

Комментарии:

1. проблема в следующем. Ваши файлы в папке не назначаются gh-страницам

2. Можно ли назначить их gh-страницам? Они находятся в ветке gh-pages.

Ответ №1:

Я сам столкнулся с этой проблемой и, наконец, нашел более простое решение. Проблема в том, что Jekyll игнорирует все файлы, начинающиеся с _ . Простое решение — добавить .nojekyll файл в каталог документов.

Мой сценарий docs выглядит следующим образом:
"rimraf ./docs amp;amp; typedoc src/ --out docs --mode modules --module commonjs --target es6 --excludePrivate amp;amp; touch ./docs/.nojekyll amp;amp; gh-pages -d docs -t"

touch это модуль npm, который создает файл, и -t флаг on gh-pages необходим для загрузки этого точечного файла.

Комментарии:

1. Верно, но я предпочитаю кроссплатформенное решение; особенно когда это требует небольшой дополнительной работы.

2. Но я не использую Jekyll. Я создал свой проект с помощью Webpack. Я не загружал ни одну папку, с которой начинается _ . Каково решение в этом случае?

Ответ №2:

Хорошо, хотя я мог бы просто ответить на свой собственный вопрос здесь.

Страница Github не допускает несколько статических HTML-файлов.

Честно говоря, в их документах это не очень понятно, но решение довольно простое :

Предполагая, что ваши локальные статические документы работают правильно, просто выполните следующие действия :

установите jekyll

gem install jekyll bundler

добавьте файл _config.yml

в вашем docs или в корне вашей gh-pages ветки с этим содержимым:


auto: true

выполнить jekyll serve

И проверьте, работает ли это нормально на URL, выводимом в вашей консоли

добавьте _site в свой файл .gitignore

нажимайте и бинго!

Если вы, как и я, используете typedoc для компиляции typescript в хорошую документацию, у вас возникнут проблемы.

Поскольку Jekyll автоматически исключает из сборки любые файлы, начинающиеся с _ , а typedoc генерирует ТОЛЬКО это, я написал простой генератор yeoman, который выполняет всю замену за вас.