Что такое хостинг простыми словами
Я представляю сайт как набор деталей. В него входят HTML, CSS, JavaScript, изображения и другие файлы. Хостинг хранит этот набор на подключённом к интернету компьютере.
Ссылка ведёт не на сам файл в папке на твоём компьютере, а на адрес, где сервис должен найти опубликованный результат и передать его браузеру посетителя.
Есть и третья часть. Если сайт отправляет запросы, хранит данные или обращается к AI через сервер, одной папки с HTML недостаточно. Отдельно понадобится место, где выполняется серверная часть приложения.
Для простой одностраничной страницы схема выглядит так:
- Файлы сайта лежат в хостинге.
- Посетитель открывает публичную ссылку.
- Браузер получает HTML, CSS и JavaScript.
- JavaScript собирает интерфейс на экране.
Не смешивай эти вещи: публичная ссылка не превращает локальный компьютер в сервер, а размещение файлов не означает, что серверная часть приложения тоже опубликована.
Нужен ли отдельный хостинг готовому сайту
Публикация Artifact доступна на тарифах Free, Pro и Max. После публикации любой человек со ссылкой может открыть результат и пользоваться его базовой функциональностью без регистрации Claude.
В документации Anthropic упоминается инфраструктура для AI-powered artifacts, то есть тех, которые вызывают Claude через window.claude.complete(). К статическим HTML-страницам, опубликованным как Artifact, это утверждение не относится: они просто отдаются как статический контент.
Это отличается от сайта, который лежит в папке на компьютере. Файлы на компьютере не становятся общедоступными сами по себе. Их нужно отправить в сервис публикации или опубликовать через платформу, где уже есть нужная инфраструктура.
У готового результата есть несколько вариантов:
- опубликовать Artifact через Claude;
- разместить статические файлы в сервисе публикации;
- использовать отдельную инфраструктуру для приложения с серверной частью.
Публикация Artifact не равна загрузке произвольного набора файлов HTML, CSS и JavaScript. В документации Anthropic есть подтверждение для публикации Artifact, но нет подробной инструкции по загрузке такого набора файлов.
Публичная ссылка Artifact подтверждена документацией. Подключение собственного домена и загрузка набора файлов HTML, CSS и JavaScript требуют отдельной инструкции Anthropic, которой здесь нет.
Три способа разместить сайт в интернете

Карта выбора выглядит так:
- GitHub Pages - вариант для обычного
index.htmlили Vite. - Cloudflare Pages - вариант для обычного HTML, если команда сборки не нужна.
- Surge - вариант с короткой последовательностью команд в терминале.
Сначала определи, что именно собрал ИИ. В проекте может лежать готовый index.html. Может быть исходный Vite-проект, который сначала собирается командой npm run build. Это разные исходные условия.
Если в проекте есть папка dist, она может быть результатом сборки. Но связывать каждый конкретный результат AI-сборки с обязательной папкой или командой нельзя: я не нашёл подтверждения в документации.
Проверь структуру проекта до публикации:
- Найди
index.html. - Проверь, есть ли
package.json. - Посмотри команды в разделе
scripts. - Уточни, какая папка появляется после сборки.
- Не публикуй секреты из
.envи браузерного JavaScript.
Платные тарифы и лимиты трёх сервисов я не проверял. Поэтому ниже нет обещаний о цене, трафике, количестве сайтов или сроке хранения.
Можно ли выложить сайт бесплатно: что подтверждено документацией
Публикация Artifact доступна на Free, Pro и Max. В документации Claude тариф Free указан как $0, а Pro стоит $20 в месяц или $200 в год. Это цена тарифа Claude, а не отдельная цена публикации сайта: цены хостинга я не проверял.
Документация описывает публикацию так:
«Makes your artifact publicly available. Anyone with the link can view and interact with it.»
Перевод: публикация делает Artifact общедоступным, любой человек со ссылкой может открыть его и взаимодействовать с ним.
- Anthropic, Publish and share Artifacts
Для статической страницы подходят GitHub Pages, Cloudflare Pages и Surge. Фактура не подтверждает стоимость этих сервисов и не даёт точных бесплатных лимитов.
Поэтому безопасная формулировка такая:
- Artifact можно опубликовать на Free.
- Статический сайт можно разместить через один из трёх выбранных сервисов.
- Отдельная плата именно за публикацию Artifact не указана.
- Бесплатный домен не обещан.
- Лимиты трафика и срок жизни ссылки я не проверял, в документации их нет.
Посетителю не обязательно регистрироваться в Claude. Опубликованный Artifact можно открыть без регистрации и использовать его базовую функциональность.
Практикум «Старт»
Три дня живой практики: от идеи до работающего проекта по ссылке
2 000 ₽старт 5 августа, 18:00 МСК
Для каких сайтов подходит размещение HTML-файлов
Anthropic относит к Artifacts одностраничные HTML-сайты и интерактивные React-компоненты. Это подтверждает базовый сценарий для одностраничного сайта.
Обычный статический результат может выглядеть так:
index.html
style.css
script.jsВ другой структуре исходники могут собираться через Vite. Тогда в проекте есть package.json, а результат появляется после команды сборки. Для таких проектов в фактуре указан GitHub Pages.
Разница между двумя случаями:
index.htmlуже готов для публикации;- Vite-проект сначала собирается, затем публикуется результат сборки;
- приложение с backend требует места, где этот backend будет выполняться;
- JavaScript в браузере не должен содержать секретный API-ключ.
Отдельной подтверждённой инструкции по загрузке набора HTML, CSS и JavaScript в Anthropic я не нашёл. Поэтому не стоит обещать, что папку можно просто перетащить в Claude и получить самостоятельную публичную ссылку.
Посмотри структуру текущего проекта и ответь только по фактам из файлов: 1. Есть ли готовый index.html в корне или во вложенной папке? 2. Есть ли package.json? 3. Какая команда сборки указана в package.json? 4. Какая папка создаётся после сборки? 5. Есть ли backend, API или обращения к localhost? 6. Есть ли секреты или API-ключи в браузерном коде? Не меняй файлы. Не запускай публикацию. В конце выбери один вариант: - GitHub Pages - Cloudflare Pages - Surge - нужен отдельный backend Для каждого вывода укажи конкретный файл или команду, на которой он основан.
GitHub Pages: разместить index.html или Vite
В найденном примере Vite-приложение собирается локально командой npm run build, после чего файлы отправляются в GitHub. Дополнительный CI не нужен, если публиковать ветку напрямую.
Последовательность настройки Pages в источнике выглядит так:
1. Open the repo on Github.com
2. Go to the Settings tab
3. Find the Pages section
4. Make sure that Source is Deploy from a branch
5. Below, set Branch to main
6. Click Save and wait a few minutes!По-русски:
- Открой репозиторий на GitHub.com.
- Перейди во вкладку
Settings. - Найди раздел
Pages. - Выбери источник
Deploy from a branch. - Укажи ветку
main. - Нажми
Saveи дождись публикации.
Для Vite в примере также используется настройка базового пути:
export default defineConfig({
build: { outDir: '..' },
base: '/your-repo-name-here/',
});Вместо your-repo-name-here в такой настройке указывают имя репозитория. Сам факт настройки зависит от структуры конкретного проекта. Готовой полной инструкции от регистрации GitHub до первой ссылки в фактуре нет.
Cloudflare Pages: опубликовать обычный HTML
Этот способ относится к статическому сайту. Если готовому HTML не нужна команда сборки, поле build command не заполняется. Корневую папку проекта нужно указать так, чтобы сервис видел нужные файлы.
Общая схема из фактуры:
- Выбрать проект для публикации.
- Указать корень проекта.
- Не задавать build command для обычного HTML.
- Нажать
Save and Deploy.
Полной инструкции от регистрации до получения ссылки в фактуре нет. Также не подтверждены стоимость, бесплатные лимиты и срок хранения публикации.
Если HTML лежит не в корне репозитория, не подставляй путь наугад. Я ошибался с корневой папкой, и хостинг не видел index.html или собирал не тот каталог.
Как выложить сайт через Surge

Установи Surge глобально
Команда добавит CLI-инструмент для публикации из терминала.
bashnpm i -g surgeСобери проект командой
Выполни сборку из папки проекта.
bashnpm run buildОпубликуй папку dist
Передай Surge каталог с результатом сборки.
bashsurge dist
Команды нужно выполнять именно в таком порядке: сначала установить Surge, затем собрать проект, затем опубликовать dist.
Если после npm run build папка dist не появилась, не меняй команду публикации случайным образом. Сначала проверь фактический результат сборки и настройки проекта. В документации для Surge указан именно каталог dist.
Практикум помогает пройти публикацию руками: увидеть структуру результата AI-сборки, проверить команду сборки и не потерять рабочий сайт при изменениях. ?utm_source=article&utm_campaign=kuda-vylozhit-sajt&utm_content=text-cta
Практикум «Старт»
Три дня живой практики: от идеи до работающего проекта по ссылке
2 000 ₽старт 5 августа, 18:00 МСК
Как выбрать способ для статического сайта
Сравнение трёх вариантов:
| Способ | Исходные условия | Главное действие |
|---|---|---|
| GitHub Pages | Обычный index.html или Vite | Использовать GitHub и встроенный Pages |
| Cloudflare Pages | Обычный HTML без build command | Указать корень проекта и нажать Save and Deploy |
| Surge | Проект с результатом сборки в dist | Выполнить команды в терминале |
Я выбираю GitHub Pages, если результат уже связан с репозиторием GitHub или собран как Vite-сайт. В найденном примере это названо простым вариантом.
Выбирай Cloudflare Pages, если перед тобой обычный HTML и команда сборки не нужна. Здесь критично правильно указать корень проекта.
Выбирай Surge, если нужен короткий сценарий через терминал и результат сборки лежит в dist.
Не выбирай способ только по слову «бесплатный». Точные цены и лимиты трёх сервисов не подтверждены фактурой. Сначала проверь структуру проекта и способ, которым получен готовый результат.
Почему сайт работает на компьютере, но ломается по ссылке

Локально сайт может обращаться к адресу вроде localhost:8000/api/v1/.... На твоём компьютере этот адрес ведёт к запущенному API. После публикации браузер посетителя пытается найти тот же API на своём компьютере. Так теряется контекст: серверная часть осталась на твоей машине, а фронтенд ушёл в публичный доступ.
В источнике проблема описана так:
Все мои вызовы API сейчас идут на localhost:8000/api/v1/xxxxxxxx, и я вижу, что в production эти вызовы не получают данные.
Если API работает на том же домене, используй относительный путь вроде /api/users. Если backend опубликован отдельно, укажи его опубликованный HTTPS-адрес в переменной окружения Production.
У этой ошибки есть несколько соседних причин.
Почему переменная окружения не попала на хостинг?
Локальный .env не переходит на хостинг автоматически. Новое значение переменной также не добавляется в уже созданную публикацию задним числом.
На примере Vercel порядок проверки такой:
- Открой настройки проекта.
- Добавь переменную в
Productionили нужное окружение. - Запусти новый деплой.
- Проверь точное имя переменной, включая регистр и подчёркивания.
Документация Vercel говорит:
Изменения переменных окружения не применяются к предыдущим деплоям.
Почему CORS работает локально, но не на продакшене?
CORS настраивается на сервере, к которому обращается браузер. Если сайт вызывает API на другом домене, разрешающий заголовок должен вернуть именно API.
Если backend принадлежит одному проекту, используй относительный путь /api/.... Если backend свой, настрой CORS-заголовки и обработку OPTIONS на backend. Если API чужой и запрещает запросы из браузера, нужен серверный вызов через собственный API route или serverless function.
AI-ключ попал в браузерный код
Секретный API-ключ нельзя оставлять в JavaScript фронтенда. Всё, что попало в браузерный код, можно посмотреть через DevTools или скачать.
Vercel формулирует правило так:
Поскольку токен даёт доступ, не открывай его на стороне клиента.
Храни ключ в переменной окружения на хостинге. Вызывай AI-провайдера из serverless function, API route или backend. Фронтенду отдавай только результат. Если ключ уже попал в опубликованный код, отзови его и выпусти новый.
Переменная окружения не остаётся секретной, если сборщик вставил её значение в браузерный JavaScript. Клиентский код доступен посетителю независимо от того, как назывался исходный файл.
Что проверить, если опубликованный сайт не открывается правильно
При обновлении вложенной страницы появляется 404
У SPA может не быть физического файла для адреса /about. При переходе через меню маршрут обрабатывает уже загруженный JavaScript. При обновлении страницы хостинг ищет настоящий файл /about и возвращает 404.
В SPA физически есть только один index.html, а все остальные маршруты обрабатывает JavaScript на стороне клиента. При обновлении страницы хостинг пытается найти файл, соответствующий адресу, и не находит его.
Для такого сценария нужен rewrite неизвестных адресов на index.html. Конкретный файл зависит от хостинга. Например, в Vercel правило задаётся в vercel.json в корне проекта:
{
"rewrites": [
{
"source": "/(.*)",
"destination": "/index.html"
}
]
}Хостинг ищет неправильную папку сборки
Сначала локально выполни npm run build. Затем посмотри, какая папка появилась. В фактуре указаны распространённые варианты dist для Vite и build для Create React App.
В настройках хостинга укажи эту папку относительно Root Directory. Не дублируй имя папки в base, publish и Output Directory.
В репозитории есть client и server
Если package.json и исходники лежат в client, а хостинг собирает корень репозитория, он может не найти нужное приложение. Отдельный репозиторий для каждой папки не нужен.
Для Vercel в настройках Build and Deployment укажи:
Root Directory: clientПосле этого проверь Build Command, Install Command и Output Directory относительно папки client.
Рабочая ссылка сервиса есть, а домен не открывается
Адрес сервиса не означает, что собственный домен уже настроен. Проверь DNS-записи, добавление корневого домена и варианта с www, а также время распространения изменений.
На примере Vercel порядок проверки такой:
- Добавь домен в
Settings -> Domains. - Настрой A-запись, которую показывает сервис.
- Для
wwwнастрой CNAME из карточки домена. - Добавь оба варианта домена, если нужны
example.comиwww.example.com. - Удали конфликтующие A-записи.
- Дождись распространения DNS.
Браузер показывает старую версию
После нового деплоя браузер может использовать старый HTML или старые ссылки на JavaScript-файлы. Открой уникальный URL конкретного деплоя, сделай hard refresh и проверь сайт в приватном окне или другом браузере.
Также проверь, что в панели сервиса выбран последний Production deployment.
Вопросы и ответы
Вопросы и ответы
Как выложить сайт без отдельной платы за хостинг?
Для Artifact используй публикацию на Free. Для статического сайта в фактуре указаны GitHub Pages, Cloudflare Pages и Surge. Точная стоимость и бесплатные лимиты этих сервисов здесь не подтверждены.
Где разместить сайт: три проверенных способа
Подходящий способ зависит от результата. GitHub Pages указан для index.html или Vite, Cloudflare Pages для обычного HTML без build command, Surge для публикации через терминал.
Как разместить сайт: пошаговая проверка проекта
Сначала проверь структуру проекта. Для GitHub Pages нужен GitHub и встроенный Pages, для Cloudflare Pages указываются корень проекта и Save and Deploy, для Surge выполняются команды установки, сборки и публикации dist.
Хостинг для загрузки сайта: как загрузить бесплатно
Если есть готовый index.html, смотри в сторону GitHub Pages или Cloudflare Pages. Если проект собирается и создаёт dist, в документации есть сценарий публикации этой папки через Surge. Общий подход к сборке проекта описан в Вайб-кодинг с нуля.
Как залить сайт на хостинг
Для Surge установи инструмент, выполни npm run build, затем surge dist. Бесплатные условия и лимиты самого Surge фактурой не подтверждены.
Как поставить сайт на хостинг
Определи тип проекта, выбери GitHub Pages, Cloudflare Pages или Surge и проверь результат по рабочей ссылке. Для Artifact отдельный сервер не нужен.
Какой хостинг для проверки сайта выбрать?
Для проверки статической страницы подойдут три указанных способа. Выбор зависит от того, есть ли готовый index.html, нужен ли build command и создаётся ли папка dist.
Куда загрузить готовый сайт?
Готовый index.html можно направить в GitHub Pages или Cloudflare Pages. Проект с результатом сборки dist можно опубликовать через Surge.
Нужен ли хостинг для сайта на компьютере?
Файлы на компьютере не становятся доступными другим людям по ссылке автоматически. Для публичного доступа нужен сервис публикации или опубликованный Artifact.
Какой хостинг для одностраничного сайта выбрать?
Одностраничный HTML-сайт относится к статическому сценарию, если ему не нужен backend. Подойдут GitHub Pages, Cloudflare Pages или Surge в зависимости от структуры файлов.
Гитхаб хостинг для сайта: как использовать GitHub
Создай или открой репозиторий, перейди в Settings, найди Pages, выбери публикацию из ветки и укажи main. Для Vite сначала выполни npm run build. Подробнее о настройке окружения в CLAUDE.md больше 200 строк в 2026.
Где найти хостинг статических сайтов
В этой статье рассмотрены GitHub Pages, Cloudflare Pages и Surge. Для каждого способа сначала проверь, какой результат уже подготовил ИИ. Если собираешь проект через Claude Code, пригодится Claude Code теряет контекст на третьем часу.
Источники
- What are Artifacts and how do I use them
- Publish and share Artifacts
- Choose a Claude plan
- GitHub Pages для обычного Vite-сайта
- How to deploy localhost APIs in production
- Services routing and communication
- Environment variables
- I get an error code 404 when I refresh my React app
- Rewrites on Vercel
- Noob question: Is there a way to set the CORS policy in Next.js
- How can I enable CORS on Vercel?
- I was leaking my API key in every request
- Building Integrations with Vercel REST API
- Using Monorepos
- How do I add a custom domain to my Vercel project?
- Next.js deployment on Vercel: API requests return 500
Практикум «Старт»
Три дня живой практики: от идеи до работающего проекта по ссылке
2 000 ₽старт 5 августа, 18:00 МСК

