Ответ 1
Я понял свой ответ. Файл index.html, который был отправлен, находился в "общедоступном" файле, который был создан во время этапа "firebase init". Я заменил этот файл-заполнитель html на тот, который был для моего приложения.
Я довольно новый программист, проходящий через учебник Firebase. Я прошел шаги 1-5 учебника (https://codelabs.developers.google.com/codelabs/firebase-web/#5). Я добавил в jt-код "Добавить Firebase в свой веб-приложение" js-код и настроил CLI Firebase. Однако, когда я запускаю сервер Firebase, все, похоже, работает иначе, чем не показывает код из файла index.html.
Я вхожу в правильный каталог, и моя консоль говорит: "Сервер прослушивает: http://localhost:5000." Но на localhost 5000 он показывает общий "Добро пожаловать в Firebase Hosting: вы видите это, потому что вы успешно настроили Firebase Hosting. Теперь пришло время сделать что-то необыкновенное!" а не код интерфейса приложения в файле index.html. Это единственный html файл в моем каталоге. Кажется, я пропускаю что-то очень простое. Благодарим вас за помощь.
Я понял свой ответ. Файл index.html, который был отправлен, находился в "общедоступном" файле, который был создан во время этапа "firebase init". Я заменил этот файл-заполнитель html на тот, который был для моего приложения.
Проблема firebase init
является невероятно грубой. Он просто переопределяет файл index.html
, который был в вашей папке public
... нет подтверждения, нет защитной сетки, нет ничего.
Единственный способ исправить это - повторно создать свой собственный index.html
файл.
Если у вас нет резервной копии или других средств для повторного создания файла index.html
... ну... слишком плохо!
Как правило, шаги настройки firebase
с веб-пакетом (или другими инструментами сборки) выглядят примерно так:
firebase login
firebase init
your-build-command-here
firebase deploy
Обратите внимание, что вам нужно выполнить первые два шага в первый раз, когда вы настраиваете построение на этом компьютере (или, возможно, когда выпущена новая редакция firebase). Для повторного развертывания просто:
your-build-command-here
firebase deploy
UPDATE
В последней версии он, по крайней мере, спрашивает вас, следует ли его переопределить или нет:)
Хостинг Firebase не показывает приложение?
Там может быть две причины этой проблемы
1-й шаг:
Убедитесь, что ваша общедоступная папка (определенная в вашем firebase.json) 'dist', содержащая index.html, не была изменена командой инициализации firebase, если да, замените ее исходным проектом index.html.
для справки (дистанция стандартная, но ваша может отличаться)
{ "hosting": { "public": "dist"} }
2-й шаг:
Убедитесь, что настроили ваш базовый href в проекте index.html
как
<base href="https://["YOUR FIREBASE PROJECT NAME"].firebaseapp.com/">
и другие файлы в комплекте
<script type="text/javascript" src="https://["YOUR FIREBASE PROJECT NAME"].firebaseapp.com/runtime.a66f828dca56eeb90e02.js">
<script type="text/javascript" src="https://["YOUR FIREBASE PROJECT NAME"].firebaseapp.com/main.2eb2046276073df361f7.js">
3-й шаг запуска команды - развертывание Firebase
наслаждаться ! ;)
Для угловых 2 или 6 с cli используйте .
(dist) как общедоступный каталог,
$ ng build --prod
$ cd dist/
$ firebase init
? What do you want to use as your public directory? .
? Configure as a single-page app (rewrite all urls to /index.html)? Yes
? File ./index.html already exists. Overwrite? No
$ firebase deploy
Для развертывания приложения Angular в простой и быстрой обучающей программе Firebase вы можете найти здесь.
В процессе инициализации firebase тип N, когда вопрос "Файл dist/index.html уже существует. Перезаписывает?" , и ваша страница будет отображаться так, как должна быть.
В опцию общей папки напишите dist/your-folder-name. Это позволит вам визуализировать ваш индексный файл, который находится в вашей папке.
В моем случае, когда я запускаю команду ng build --prod
она создает подпапку в папке dist. Предположим, мой проект называется FirstProject. Я могу видеть подпапку с именем FirstProject внутри папки dist (dist/FirstProject). Задайте dist/[subDirectory] в качестве общего каталога.
What do you want to use as your public directory? dist/FirstProject
Это решило мою проблему
Для всех, кто сталкивается с этим. Попробуйте запустить в режиме инкогнито - браузер был кеширован для меня.
npm install -g firebase-tools
firebase login
firebase init
firebase deploy
firebase open
Выберите следующее после прокрутки вниз
Hosting: Deployed Site
Пожалуйста, следуйте шаг
npm install -g firebase-tools
Если у вас уже есть папка dist, удалите ее из каталога
firebase login
ng build --prod
firebase init
firebase deploy
В моем случае firebase использовал неправильный каталог, см. Также здесь: CLI firebase не распознал текущий каталог проекта для 'firebase init'. В то время как я ожидал, что firebase поместит все созданные файлы в каталог моего проекта, он был полностью отключен и поместил все файлы в мой каталог /Users/MyUserName и развернул оттуда неправильный index.html.
Вот как это исправить (переустановка firebase не требуется, как предложено в связанном посте):
Кстати, для всех, кто использует Angular 7, этот урок о развертывании приложения angular 7 для хостинга Firebase был действительно полезным для меня.
Я столкнулся с подобной ситуацией. Когда мы запускаем firebase init, он задает пару вопросов. В то время мы упоминаем путь к каталогу, откуда firebase будет брать все файлы для развертывания. Убедитесь, что каталог содержит index.html.