Самая частая причина именно для 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.