Задать вопрос
@terbyzzz

Почему не получается собрать сайт на Hugo?

Собираю сайт на Hugo с темой Ananke и деплою на GitHub Pages. Сгенерированный CSS-файл в public/css/ получает имя с хэшем, например _entry.b0a8f189...css. HTML-файл ссылается на него правильно, сам файл есть в репозитории на GitHub. Но при открытии сайта браузер не может загрузить этот CSS-файл (ошибка 404).

Что уже пробовала:

Прописывала disableAssetsBusting = true в config.yaml

Проверила baseURL со слешем на конце (https://ponomarevava0.github.io/)

Удаляла папку public и пересобирала много раз

Использовала git push -f для принудительного обновления репозитория

Чистила кэш браузера и открывала в инкогнито

Файл в репозитории есть, но GitHub Pages отдаёт 404. Другие файлы (картинки) грузятся нормально.

Репозиторий мой: https://github.com/PonomarevaVA0/PonomarevaVA0.git...
Репозиторий с шаблоном: https://github.com/wowchemy/starter-hugo-academic
  • Вопрос задан
  • 232 просмотра
Подписаться 1 Средний 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Фронтенд-разработчик
    11 месяцев
    Далее
  • Академия Эдюсон
    Веб-разработчик Базовый
    9 месяцев
    Далее
  • Skillbox
    Веб-вёрстка
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
@alekssamos
Программист любитель
Самая частая причина именно для GitHub Pages + Hugo в такой ситуации — Jekyll фильтрация файлов, начинающихся с _.
Что происходит
GitHub Pages по умолчанию запускает Jekyll.
Jekyll игнорирует файлы и папки, начинающиеся с _ (они считаются служебными):

_entry.b0a8f18901e8....css
^
Поэтому:

файл есть в репозитории

но GitHub Pages его не публикует

в результате — 404
А файл:
/css/main.css
работает, потому что не начинается с _.

Решение №1 (правильное) — добавить .nojekyll
Создай файл в корне сайта, который публикуется (обычно public/ → gh-pages):
.nojekyll
Пустой файл без содержимого.
Пример структуры:
.
├── css
│   ├── _entry.b0a8f18901e8....css
│   └── main.css
├── index.html
└── .nojekyll
После этого GitHub Pages перестанет запускать Jekyll и будет отдавать файлы как есть.
Команда
touch public/.nojekyll
или добавь в репозиторий:
echo "" > .nojekyll

git add .nojekyll
git commit -m "Disable Jekyll for GitHub Pages"
git push


Решение №2 — не использовать _ в имени
Переименовать:
_entry.hash.css
в
entry.hash.css
Но если файл генерируется (например через Hugo Pipes / Vite / Rollup), это может быть неудобно.

Почему Hugo обычно не ломается
Hugo не использует Jekyll, поэтому локально всё работает.
Проблема появляется только после публикации на GitHub Pages.

✅ Итог:
Добавь .nojekyll — это стандартное решение для Hugo на GitHub Pages.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы